【发布时间】:2013-02-05 21:43:06
【问题描述】:
我想在两个不同的 m2m 字段之间进行自动关系绑定。这是我想要的工作流程的示例:
- 创建标签“绿色”
- 创建标签“Colors”并将“Green”标记为孩子
- 现在,当我返回“绿色”标签面板时,父母之间需要有“颜色”
不幸的是,事情没那么简单,我什么也想不出来。我尝试将对称设置为 True,但这只是造成不必要的循环(“绿色”不是“颜色”的父级!)
# 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
)
感谢您的帮助。
【问题讨论】:
-
如果您引用 django 管理面板,您可能需要添加一个标签。这不是 M2M 问题。
-
谢谢,所以我做到了。但仍然没有运气:/
-
嗯,也许你应该研究一下表单和创建自定义表单的方法(也许扩展 ModelForm)。无论如何,这两个 M2M 是错误的。它们代表相同的东西。如果您仅在管理面板中需要此功能,您可以尝试将具有 2 个外键的新模型
Parentship添加到Tag并在那里修改这些关系。 -
谢谢,刚刚注意到您的最新评论。正如 Hamms 所建议的,我确实刮掉了一个 m2m 字段,因为它确实过于复杂。现在我正在研究管理面板表示。感谢您的建议,如果我想出最终设置,我将编辑我的开场白。
标签: python django django-models django-admin django-orm