【发布时间】:2012-07-18 00:51:32
【问题描述】:
我有一个模型,当它保存时,如果它的一个外键不存在,它应该创建并保存它:
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()
但是对super(MyModel, self).save() 的调用会引发错误,因为self.fk_id 仍然为空:
注意:调试器显示self.fk.id 已正确设置,并且在添加self.fk_id = self.fk.id 后一切似乎都正常。
那么,我的问题是:为什么需要self.fk_id = self.fk.id?是否可以明确避免这样做?
【问题讨论】:
-
为什么不在将 AnotherModel 对象分配给
self.fk之前保存它? -
@DanielRoseman 啊,没有考虑到这一点。我想这会起作用……但仍然没有“意义”。
标签: python django django-models django-1.3