从FK相关对象中获取模型字段值



我有一个FK相关对象的结构,看起来有点像:

class Object3(models.Model):
...
requirement = models.ManyToManyField(Requirement, blank=True)

class Object2(models.Model):
...
parent = models.ForeignKey(Object3, on_delete=models.CASCADE)
requirement = models.ManyToManyField(Requirement, blank=True)

class Object1(models.Model):
...
parent = models.ForeignKey(Object2, on_delete=models.CASCADE)
requirement = models.ManyToManyField(Requirement, blank=True)

class Requirement(models.Model):
...

所有这些对象都有相同的非必需字段,即ManyToManyField,它基本上是一个可以在结构的任何级别上设置的需求。

我需要做的是,当我在结构的最高级别Object3上设置m2m字段时,我需要相关的Object2和Object1来设置相同的m2m,同样,如果我在Object2实例上设置它,我需要在相关的Object1实例上设置。

实现这一目标的最具Django风格的方法是什么?

我希望我的解释足够清楚,我非常乐意提供更多信息。

我一直在努力完成这个简单的任务,但我似乎无法想出一个好的解决方案,希望在你的帮助下我能做到。

也许使用Foreignkeys来满足需求会更好。

但是你可以用Object1.requirement.add(requirement)为每个对象添加需求,用Object1.requirement.remove(requirement)删除它们,所以理论上每次更改一个,你也可以将其应用于其他对象

最新更新