1

次の形式の django エラーに苦しんでいるユーザーから多くの質問が寄せられました。

IntegrityError at... 列 X の null 値が not-null 制約に違反しています

通常、これは元の操作の後にのみ更新したためmodels.pynull=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 制約に違反しています

ここで何か間違ったことをしていますか?ありがとう。

4

0 に答える 0