모든 내 도시를 표시하려면 ListView을 사용하려고합니다.ListView에 표시된 항목과 관련된 개체를 계산하는 방법은 무엇입니까?
그러나 각 도시마다 거주하는 시민의 수를 표시하고 싶습니다.
Models.py
class Town(models.Model):
name = models.CharField()
class Citizen(models.Model):
name = models.CharField()
town = models.ForeignKey(Town)
Views.py
class TownView(ListView):
model = Town
def get_context_data(self, **kwargs):
context = super(TownView, self).get_context_data(**kwargs)
context['towns'] = Town.objects.all().prefetch_related('players')
return context
나는 도시보기에서 플레이어의 속성이 있다면 prefetch_related (가)만을 통해 아마 작동하기 때문이 작동하지 않습니다 manytomany 필드입니다.
각 마을마다 자신의 프래그가 설정된 마을의 수를 어떻게 검색 할 수 있습니까?
또한 내 서식 파일은 어떻게 생겼을까요?
템플릿
<table>
{% for town in open_towns %}
<tr>
<td><a href="/town/join/{{ town.slug }}/">{{ town.name }}</a></td>
<td>population : {{ Player.objects.filter(town=town).count() }}</td>
</tr>
{% endfor %}
</table>
을하지만이 너무 분명 잘못 : 현재는 다음과 같습니다.
Town.objects.annotate(population=Count('players'))
그리고 템플릿 :