У меня есть две модели, показанные ниже
class Services(models.Model):
name = models.CharField(max_length=200, null=True)
price = models.FloatField(null=True)
service_sku = models.CharField(max_length=200, null=True)
class Order(models.Model):
customer = models.ForeignKey(Customer, null=True, on_delete = models.SET_NULL)
service = models.ForeignKey(Service, null=True, on_delete = models.SET_NULL)
Я создал представление на основе функций на основе модели службы, где я хочу отобразить шаблон, отображающий список информации о полях из каждого экземпляра из службы модель.
Мои представления и шаблон см. ниже
views.py
def service_list(request):
service_list = Service.objects.all().order_by('service_sku')
context = {'service_list':service_list}
return render(request, 'accounts/service_list.html',context)
template
<div class="card card-body">
<table class="table">
<tr>
<th>SKU</th>
<th>Service Name</th>
<th>Number of Ordered</th>
</tr>
{% for i in service_list %}
<tr>
<td>{{i.service_sku}}</td>
<td>{{i.name}} </td>
<td></td>
</tr>
{% endfor %}
Я хочу отображать количество заказов каждого экземпляра, учитывая, что модель заказа имеет внешний ключ из сервисная модель.
Набор запросов должен быть таким, как показано ниже.
Order.objects.all().filter(service__id =3).count()
Проблема в том, что я должен указать, какой идентификатор этой модели будет для этого набора запросов для работы.
Я попытался поместить формат набора запросов ниже в шаблон
{{Order.objects.all().filter(service__id=i.id).count()}
В шаблоне это будет выглядеть так, как показано ниже
template
<div class="card card-body">
<table class="table">
<tr>
<th>SKU</th>
<th>Service Name</th>
<th>Number of Ordered</th>
</tr>
{% for i in service_list %}
<tr>
<td>{{i.service_sku}}</td>
<td>{{i.name}} </td>
<td>{{Order.objects.all().filter(service__id=i.id).count()}}</td>
</tr>
{% endfor %}
Выше реализация не работает.
Какой метод идеально подходит для этой ситуации?