2011-01-31 4 views
1

models.py Region and Survey에는 두 개의 클래스가 있습니다. 설문 조사는 region_select=model.ForeignKey(region)이고 다른 속성 및 지역은 name=models.CharField입니다. 장고 일반보기를 사용하여 항목/지역 목록을 만들고 그 항목의 필터링 된 번호를 갖고 싶습니다.django 템플릿 필터 : 개체 계산

<..> 
    <ul> 
     {% for Region in regions_list %} 
      <p><b>{{ Region }}</b> <i>(count: {{ ??? }})</i><br> 
      {% for Survey in object_list %} 
       {% if Survey.region_select = Region %} 
        <a href="{% url region-display Region.id %}">{{ Survey }}</a> 
       {% endif %} 
      </p> 
      {% endfor %} 
     {% endfor %} 
    </ul> 
<..> 

region_list 객체 목록 i가 각 지역에 대해 개별적으로 해당 항목을 계산하려는 불구하고 (Survey.objects.all()) 지금까지 내가 완전한 목록을 얻을 수와 같은 Region.objects.all() 의 검색어 세트는 다음과 같은 내 템플릿 보인다. 나는 object_list.filter(region_select=Region).count을 시도했지만 필터에 무엇이든 쓰는 것은 템플릿 오류로 끝내서 내가 필터로주는 것을 분석 할 수 없다는 것을 말합니다. ??? 장소에 어떤 제안이 있습니까? 사용자 정의 {{name | filter}} 필터는 어떻습니까? 다시 나는 단지 개체를 계산할 필요가 ... 아, 나는 또한 같은 Survey.objects.filter(region_select=Region).count와 함께 메서드를 추가하려고했지만 그 장소와 그 개체 (?!?) 유형을 작성 결국.

P. 복사/붙여 넣기가 아니기 때문에 다시 쓰는 동안 간단한 실수가 발생할 수 있습니다.

답변

3

시도 : 난 그냥 당신이 쿼리 세트를 제공하고 있음을 알 수있는 방법입니다 생각했기 때문에

Region.survey_set.all.count 
+0

, 내가 objectName_set 부분을 말은,이 문서에 _set 본 적이 있지만이 작업을 자동으로 만들 것입니다. – JackLeo

+0

설문 조사 모델에서'region_select = model.ForeignKey (Region)'을 정의하면 django는 자동으로 Region 모델에'survey_set'을 추가합니다. 'region.survey_set'는'Survey.objects.filter (region_select = region)'와 같습니다. 물론 사용자 정의 태그를 사용하여 비슷한 기능을 수행 할 수 있지만 model_set 방법은 더 장고합니다. 그리고 btw, 템플릿은 템플릿을 표시하는 데 사용되며 비즈니스 로직이 없어야하므로 템플릿에서 직접 필터를 사용할 수 없습니다. – adieu

+0

예 이름을'related_name' 인수로 겹쳐 쓰지 않는 한 역 관계는 ​​자동으로 작성됩니다. –