web-dev-qa-db-fra.com

'La contrainte NOT NULL a échoué' après l'ajout à models.py

J'utilise userena et après avoir ajouté la ligne suivante à mon models.py

zipcode = models.IntegerField(_('zipcode'),
                                   max_length=5)

J'obtiens l'erreur suivante après avoir cliqué sur le bouton d'envoi du formulaire d'inscription:

IntegrityError at /accounts/signup/
NOT NULL constraint failed: accounts_myprofile.zipcode

Ma question est la suivante: que signifie cette erreur et est-ce lié à Userena?

27
stephan

Vous devez créer une migration, dans laquelle vous spécifierez la valeur par défaut pour un nouveau champ, car vous ne voulez pas qu'elle soit nulle. Si null n'est pas requis, ajoutez simplement null=True et créez et exécutez la migration.

46
coldmind

si le champ zipcode n'est pas obligatoire, ajoutez null = True et blank = True, puis exécutez la commande makemigrations and migrate pour refléter correctement les modifications apportées à la base de données.

8
Mahendra Yadav

Comme vous avez ajouté une nouvelle propriété au modèle, vous devez d'abord supprimer la base de données. Ensuite, migrations manage.py, puis migrations manage.py.

0
Ali