次の形式の django エラーに苦しんでいるユーザーから多くの質問が寄せられました。
IntegrityError at... 列 X の null 値が not-null 制約に違反しています
通常、これは元の操作の後にのみ更新したためmodels.pyでnull=True, blank=Trueありsyncdb、問題の SQL テーブルを手動で更新するか、または南を使用して移行する必要があります。syncdbただし、データベース スキーマを完全に削除し、正しいオプションを使用して再構築したにもかかわらず、まさにこの問題が発生していますmodels.py。誰でもこれを説明できますか?明らかに、Postgre の列を更新して NOT NULL を削除することができますが、これがまったく起こっていることを懸念しています。
models.py:
class TopTen(models.Model):
toptenuser = models.ForeignKey(TopTenUser)
date_in = models.DateTimeField()
date_out = models.DateTimeField(null=True, blank=True)
active = models.BooleanField()
syncdb:
> (venv)richard@ubuntu:~/DjangoProjects/Heroku/mytopten$ heroku run python manage.py syncdb
> Running `python manage.py syncdb` attached to terminal... up, run.5406
> Creating tables ...
> Creating table auth_permission
> Creating table auth_group_permissions
> Creating table auth_group
> Creating table auth_user_groups
> Creating table auth_user_user_permissions
> Creating table auth_user
> Creating table django_content_type
> Creating table django_session
> Creating table django_site
> Creating table django_admin_log
> Creating table mytopten_toptenuser
> Creating table mytopten_topten
> Creating table mytopten_song_toptens
> Creating table mytopten_song
それでも、初めてrunserverTopTen インスタンスに入ろうとすると、次のようになります。
IntegrityError: 列 "date_out" の null 値が not-null 制約に違反しています
ここで何か間違ったことをしていますか?ありがとう。