我试图解决一个网站的简单问题,其中 Person 模型有一个 mapped_to 字段作为外键。
为了在用户 (PersonA) 更改他/她的结婚对象时保持这一点,应该发生以下情况:
- PersonA 与之结婚的前一个 Person 应该将它的 mapped-field 设置为 None
- PersonA 与之结婚的新人应该更新并将其结婚字段设置为 PersonA(这反过来可以触发新人的可能先前已婚的人应该将其结婚字段设置为无)
所以我尝试的是按照以下方式覆盖保存方法
if self.pk is not None and self.married is not None:
orig = Person.objects.get(pk=self.pk)
orig.married.married = None
orig.married.save()
if self.married is not None:
self.married.married = self
self.married.save()
super(Person, self).save()
我遇到了最大递归问题等,并开始寻找答案,但没有找到任何结论。
对于像我这样的菜鸟来说,这样做的惯用方法是什么......
谢谢