次の形式の 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
それでも、初めてrunserver
TopTen インスタンスに入ろうとすると、次のようになります。
IntegrityError: 列 "date_out" の null 値が not-null 制約に違反しています
ここで何か間違ったことをしていますか?ありがとう。