我有这个模型
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”。 我做错了吗?
答案 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标志