2012-07-30 4 views
2

같은 모델에 2 대 다 관계의 장고 모델이 있습니다. 나는 "property2"를 확인 할 수있는 방법 model_instance._meta.m2m_data 반복하는 동안장고 모델 인트로 스펙 티브 - 대다수 - 대다수 - 대다수 - 대다수

class MyModel(models.Model): 
    .... 
    property1 = models.ManyToManyField(Model2, related_name="internal", blank=True, null=True) 
    property2 = models.ManyToManyField(
     Model2, 
     related_name="external", 
     through="Model3" 
    ) 

: 그들 중

하나는,처럼 '을 통해 "옵션을 사용합니다?

두 필드는 처음에 내가에서

답변

1

을 "rel.to"을 가지고 있지만 "rel.through"하지 않을 동안 나는 .. 그냥 두 번째 필드를 기대했다 .. 설정 "rel.through"이 내 필드가 propery1 인 경우 is_hidden()True을 반환합니다. 왜냐하면 숨겨진 관계에 대한 개념이 있기 때문입니다. 또한 property2.rel.id_hidden()Model3이이 관계를 나타내므로 False을 반환합니다. 여기

# 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

관련 문제