允许外键中的null为用户。 Django的

时间:2009-11-28 15:33:26

标签: django django-admin

我有这个模型

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”。 我做错了吗?

3 个答案:

答案 0 :(得分:33)

  

club_vacancy.user_id may not be NULL

看起来非常像数据库中的错误,而不是来自Django。

在运行null=True后,您最有可能添加了manage.py syncdb。您需要修改数据库模式以允许该列中的空值。

答案 1 :(得分:2)

除了南方,另一个选择是使用django evolution进行架构更改。

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

在进行db更改之前安装它。然后运行

python manage.py evolve --hint --execute

确保如果添加新字段,则允许空值(null=True),否则evolve会给出错误消息。

答案 2 :(得分:-5)

您需要重置数据库表(因为只有syncdb不会更新使用null = False创建的alredy字段)

./ manage.py重置your_app

如果有一些您不想放松的数据,请使用SQL命令删除NOT NULL标志