2014-12-21 2 views
-1

GEO, SHIP 및 CREW의 두 모델 개체가 있습니다. 승무원, 우주선 및 지리적 위치 사이에는 일대 다의 관계가 있습니다. GEO에는 0-n 개의 선박이있을 수 있습니다. 내가 GEOS의 목록 당기면 각 선박으로, 0-N 가있을 수있다 : 각 선박, 선원들과 다음보기에서 모델의 퇴사를 얻는 방법

GEO = models.Geo.objects.all() 

가 어떻게 선박을 통해 GEOS의 모든 루프를 참조 할을하고 .. 템플릿에?

def crew_list(request): 
    return render(request, 'crew_list.html', {'geo_list': Geo.objects.all()}) 

A는 다음 템플릿을 통해 관련 선박/선원을 반복 : 당신이 Geo 단지 목록을 전달해야 views.py에서

+0

docs https://docs.djangoproject.com/ko/1.7/topics/db/queries/을 시도한 다음 코드 – Anentropic

+0

을 시도해보십시오. 먼저 모델 정의를 보여주십시오. – alecxe

답변

1

class Geo (Unit): 
    coverage = models.TextField(null=True) 

    def __str__(self): 
     return self.Name 


class Ship (Unit): 
    HullNumber = models.TextField(null=True) 
    Origin = models.CharField(max_length=3, choices=ALLEGIENCE_CHOICES, default='FED') 
    Geo = models.ForeignKey(Geo) 

    def __str__(self): 
     return self.Name 


class Crew (models.Model): 
    CrewType = (
     ('O', 'Officer'), 
     ('E', 'Enlisted'), 
     ('C', 'Civilian'), 
    ) 
    Geo = models.ForeignKey(Geo) 
    Ship = models.ForeignKey(Ship) 
    Type = models.CharField(max_length=1, choices=CrewType) 
    Position = models.CharField(max_length=20) 

    def __str__(self): 
     return self.Position 

감사 : 여기

내 모델의 of each Geo :

{% for geo in geo_list %} 
    <h1>{{ geo }}</h1> 
    {% for ship in geo.ship_set.all %} 
     <h2>{{ ship }}</h2> 
     <ul> 
      {% for crew in ship.crew_set.all %} 
       <li>{{ crew }} - {{ crew.get_Type_display }}</li> 
      {% endfor %} 
     </ul> 
    {% endfor %} 
{% endfor %} 

다른 옵션은 Geo/Ship으로 주문한 Crew의 목록을 템플릿으로 전달하고 ifchanged 템플릿 태그를 사용하여 승무원 회원의 "변경된"지역 및 선박을 표시하는 것입니다.

관련 문제