web-dev-qa-db-ja.com

ユーザーへの外部キーのnullを許可します。 Django

私はこのモデルを持っています

class Vacancy(models.Model):
    user = models.ForeignKey(User, null=True, blank=True, default = None)
    name = models.CharField(max_length=64)

管理者の場合、ユーザーなしで必要要員を作成しようとします。そして、「club_vacancy.user_idはNULLでない可能性があります」というエラーをスローします。私は何か間違ったことをしていますか?

22
barin

club_vacancy.user_id may not be NULL

Djangoからではなく、データベースからのエラーに非常によく似ています。

null=Trueの実行後にmanage.py syncdbを追加した可能性があります。その列でnull値を許可するようにデータベーススキーマを変更する必要があります。

33
Ben James

南部以外の別のオプションは、スキーマの変更にDjango進化を使用することです。

http://code.google.com/p/Django-evolution/

Dbを変更する前にインストールしてください。次に実行します

python manage.py evolve --hint --execute

新しいフィールドを追加する場合は、null(null=True)またはelse elseはエラーメッセージを表示します。

2
dannyroa