Как отобразить кверисет в Django?
Я пишу функцию, и в конце функция создает несколько объектов модели (одна и та же модель, разные значения). Я перечислил эти объекты, но я хочу перечислить только один объект с одним и тем же значением dashboard_id
.
Я нашел кое-что об этом, но у меня проблема с отображением в таблице.
Он работает, но не отображает значения. Как я могу решить эту проблему?
views.py
def reports_list(request):
report_list = Reports.objects.values_list('dashboard_id', flat=True).distinct()
context = {
'report_list': report_list,
}
return render(request, "report_list.html", context)
report_list.html
<table id="table_id" class="display">
<thead>
<tr>
<th>Kullanıcı</th>
<th>Yüklenme Tarihi</th>
<th>Görüntüle</th>
</tr>
</thead>
<tbody>
{% for report in report_list %}
<tr>
<td>{{ report.user.first_name }} {{ report.user.last_name }}</td>
<td>{{ report.created_at }}</td>
<td>view</td>
</tr>
{% endfor %}
</tbody>
</table>
Я не думаю, что то, что у вас есть в вашей функции, соответствует тому, что я вижу как ваше намерение в шаблоне. Поэтому вместо этого вы можете попробовать следующее:
def reports_list(request, dashboard_id):
report_list = Reports.objects.filter(dashboard_id=dashboard_id).all()
context = {
'report_list': report_list,
}
return render(request, "report_list.html", context=context)
Если вы считаете, что ваша исходная функция верна, то вы забыли добавить контекст (context=context
).