Учитывая следующее:
return Client.objects.filter(case=self.kwargs['case_pk']
).prefetch_related('parent_set', 'children_set')
Это работает правильно, хотя я думаю, что мой фильтр создает слишком много запросов.
Однако моя проблема в том, что может быть более одного Клиента. В результате:
Clientâ
Parent1
Clientâ
child1
clientb
Parent1
parent2
clientb
child1
child2
Мне нужно сгруппировать родителей и детей по клиенту, чтобы я мог создать что-то подобное в шаблоне:
Clientâ
parent: parent1
дети: child1
clientb
родители: родитель1 родитель2
дети: ребенок1 ребенок2
Надеюсь, это имеет смысл.
Шаблон выглядит следующим образом:
<table class="table table-bordered">
<thead class="thead-dark">
<tr>
<th scope="col">Parents</th>
<th scope="col">Siblings</th>
<th scope="col">Children</th>
<th scope="col">Step Children</th>
</tr>
</thead>
<tbody>
{% for client in clients %}
<tr>
<td>
{% for p in client.parent_set.all %}
{{ p }}<br />
{% endfor %}
</td>
<td>
{% for s in client.child_set.all %}
{{ s }}<br />
{% endfor %}
</td>
</tr>
{% empty %}
<tr>
<td colspan="2">No clients added to this case yet</td>
</tr>
{% endfor %}
</tbody>
</table>