2014-12-20 5 views
0

내 프로젝트에 appj, appB라는 Django 응용 프로그램이 2 개 있다고 가정합니다. 그 models.py에 다음과 같이이 장고 모델에서 순환 참조를 방지하는 방법은 무엇입니까?

APPA는 MODELA이 포함

class ModelA(models.Model): 
    field1 = models.CharField(max_length=254, null=False, blank=False,) 

의 modesl.py에서 다음과 같이 appB이 ModelB이 포함

이제
from appA.models import modelA 

class ModelB(models.Model): 
    field2 = models.CharField(max_length=254, null=False, blank=False,) 
    model_A = models.ForeignKey(ModelA, related_name="blahblah") 

내가 좋아하는 것이에 @property 기능을 추가 할 수 이 ModelA를 외래 키로 갖는 ModelB의 모든 인스턴스를 반환하는 ModelA :

하지만 이렇게하려면 appB.models을 appA.models로 가져와야하지만 순환 가져 오기가 발생합니다. 그래서 순환 수입으로 실행하지 않고 어떻게 이것을 할 수 있습니까?

답변

4

해당 속성이 필요하지 않습니다. 기능은 이미 내장되어 있습니다. 단지 mymodelA.modelb_set.all() 일 수 있습니다.

(여기 related_name을 설정 한 이후 사실, 그것은 mymodelA.blahblah.all() 될 것입니다.)

following relations backward의 문서를 참조하십시오.