나는 장고에 모든 선수를 가져 와서 (경량, 중량급 등) 카테고리로 정렬 한 다음 각 카테고리의 선수들을 맨 위에서 정렬하여 표시하는 응용 프로그램을 작성하고 있습니다. 하단 득점 선수에게 득점하는 선수. 나는 선수들을 클래스로 분류하기 위해 템플릿을 얻을 수 없다. 모든 운동 선수를 표시하거나 표시하지 않습니다. 여기 Django 템플릿 필터 2 ManytoMany 필드
내 모델과 템플릿의 관련 부분은 다음과 같습니다선수가 여러 부문에서 할 수 있으며, 각각의 카테고리는 여러 선수가있다. 또한 범주는 날짜순으로 정렬됩니다.
models.py
class Entry(models.Model):
athlete = models.ForeignKey(Athlete, related_name='entries')
event = models.ForeignKey(Event, related_name='entries')
athlete_category = models.ManyToManyField(Category, related_name='entries')
athlete_score = models.CharField(max_length=20, blank=True)
placing = models.SmallIntegerField(blank=True, null=True)
class Category(models.Model):
category_name = models.CharField(max_length=100)
class CategoryOrder(models.Model):
event = models.ForeignKey(Event)
category = models.ForeignKey(Classes)
category_order = models.SmallIntegerField()
템플릿을 기반으로 해당 범주에서 다음 선수 모두 각각의 카테고리를 나열하기로하고
{% for category in categories %}
<p>{{ category.category_name }}</p>
{% for entry in entries %}
{% for athlete_category in entry.athlete_category %}
{% if athlete_category == category %}
<p>{{ entry.athlete.first_name }} {{ entry.athlete.last_name }} - {{ entry.placing }}</p>
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}
event_placings.html 자신의 자본 매출. 출력은 다음과 같아야합니다
남성 경량
신원 미상 - 1
조 공공 - 2
여성 경량
신원 미상 - 1
에바 브라운 - 2
등
현재 받고 있습니다 :
남 욕실의 경량
여성 경량
그것은 범주를 나열하지만 선수. 내가 어디로 잘못 가고 있니?
그 트릭을했습니다. 완전한! 고맙습니다. – Nse