我想在两个不同的m2m字段之间进行自动关系绑定。以下是我所需工作流程的示例:
不幸的是,它不是那么简单,我无法想出任何东西。我尝试将对称设置为True但它只是做了不必要的循环("绿色"不是#34;颜色&#34的父级!)
# my models.py
class Tag(models.Model):
...
children = models.ManyToManyField(
'self',
blank=True,
related_name="kids",
symmetrical=False
)
parents = models.ManyToManyField(
'self',
blank=True,
related_name="folks",
symmetrical=False
)
感谢您的帮助。
答案 0 :(得分:0)
我相信你想要做的事情可以通过单一的M2M关系来完成。查看the documentation for symmetrical。如果定义一个非对称字段,则可以使用related_name
参数来定义另一个关系:
class Tag(models.Model):
name = models.TextField()
children = models.ManyToManyField(
'self',
blank=True,
related_name="parents",
symmetrical=False
)
green = Tag.objects.create(name='green')
color = Tag.objects.create(name='color')
color.children.add(green)
color in green.parents.all() # True