Django: `model.fk_id` isn't updated after `model.fk.save()`?
我有一个模型,如果它不存在,保存时应该创建并保存它的一个外键:
1 2 3 4 5 6 7 8 | class MyModel(m.Model): fk = m.ForeignKey(AnotherModel) def save(self): if not self.fk_id: self.fk = AnotherModel() self.fk.save() return super(MyModel, self).save() |
但是对
1 2 3 4 5 6 7 8 | Traceback (most recent call last): ... File".../models.py", line 10, in save return super(MyModel, self).save() ... File".../django/db/backends/postgresql_psycopg2/base.py", line 44, in execute return self.cursor.execute(query, args) IntegrityError: null value in column"fk_id" violates not-null constraint |
注意:调试器显示
所以,我的问题是:为什么需要
我认为这个错误报告是你的答案。目前,您只需要在相关对象拥有主键之后设置它。他们还在讨论补丁。