我有一个与同一模型有2对多关系的django模型。
其中之一,使用“通过”选项,如:
class MyModel(models.Model):
....
property1 = models.ManyToManyField(Model2, related_name="internal", blank=True, null=True)
property2 = models.ManyToManyField(
Model2,
related_name="external",
through="Model3"
)
在遍历model_instance._meta.m2m_data时如何检查“property2”?
这两个字段都有“rel.through”设置..我只期待第二个字段..而在第一个字段中我会“rel.to”而不是“rel.through”
答案 0 :(得分:1)
在我自己的例子中,当field是propery1时,is_hidden()
将返回True
,因为有关于隐藏关系的概念。另外,property2.rel.id_hidden()
会返回False
,因为Model3
代表这种关系。
# for some reason, User.groups has field.is_hidden() == None
if field.rel.is_hidden() == None:
hidden_field = True
else:
hidden_field = field.rel.is_hidden()
此处的用法:https://github.com/felipecruz/dmqs/blob/master/dmqs/integration/memorify_django_model.py#L28