允许用户外键为空。姜戈

发布于 2024-08-12 16:46:46 字数 268 浏览 1 评论 0原文

我有这个模型

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

I have this model

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

When in admin i try to creat a vacancy without a user. And it throws an error " club_vacancy.user_id may not be NULL".
Am i doing something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

莫相离 2024-08-19 16:46:46

club_vacancy.user_id 不能为 NULL

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

看来您很可能是在运行 manage.pysyncdb 后添加了 null=True。您需要修改数据库架构以允许该列中存在空值。

club_vacancy.user_id may not be NULL

Looks very much like an error from your database, rather than from Django.

It seems most likely that you added null=True after running manage.py syncdb. You'll need to modify your database schema to allow null values in that column.

£烟消云散 2024-08-19 16:46:46

除了 South 之外,另一个选择是使用 django Evolution 进行架构更改。

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

安装在进行数据库更改之前。然后运行

python manage.py evolve --hint --execute

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

Aside from South, another option is to use django evolution for schema changes.

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

Install it before making db changes. Then run

python manage.py evolve --hint --execute

Make sure that if you add a new field, you allow nulls (null=True) or else evolve will give you an error message.

ゃ人海孤独症 2024-08-19 16:46:46

你需要重置你的数据库表(因为syncdb不会更新已经用null=False创建的字段)

./manage.py重置your_app

或者如果有一些你不想丢失的数据使用SQL命令删除NOT空标志

you need to reset you database table (since just syncdb does not update fields that are alredy created with null=False)

./manage.py reset your_app

OR if there is some data that you do not want to loose use SQL commands to remove NOT NULL flag

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文