Django models 数据库上的外键始终设置为null

Django models 数据库上的外键始终设置为null,django-models,Django Models,我有以下型号: class Message(models.Model): parent = models.ForeignKey('self', related_name='parent_msg', null=True) (...) 我执行以下操作来创建新消息: (...) parent_msg = Message.objects.get(id = message_id) m = Message(..., parent = parent_msg) m.save() 但是数据库上

我有以下
型号

class Message(models.Model):
    parent = models.ForeignKey('self', related_name='parent_msg', null=True)
    (...)
我执行以下操作来创建新消息:

(...)
parent_msg = Message.objects.get(id = message_id)
m = Message(..., parent = parent_msg)
m.save()
但是数据库上的
parent\u id
字段总是设置为
NULL


文档中说“如果为True,Django将在数据库中将空值存储为NULL”,但我知道
parent\u msg
不是空的,那么我做错了什么?

问题不在于模型定义。但是插入代码。
请你把完整的代码贴出来,以便验证。您使用的是什么版本的django。

尝试将
blank=True
添加到
ForeignKey
参数中。以防万一,您确定所有架构迁移都已触发吗?另外,您确定在初始化对象后没有忘记保存它吗?您还可以尝试将父级设置为属性(不在构造函数中:
m.parent=parent\u msg;m.save()
我已经尝试添加
blank=True,default=None
,我运行了
syncdb
,我也执行了
m.save()
。仍然没有成功。问题出在代码的另一部分。当我按照您的建议保存
parent\u msg
时,它会起作用。我会将问题标记为已回答。能否请您回滚上次编辑,以便人们知道正确的方法?如果错误出现在代码的其他部分,则问题中的代码将不会出现错误任何问题。我提供的代码是不需要的。