检索ListView的数据

时间:2018-06-27 09:34:19

标签: django

我有一个ListView,另外还必须检索上下文以显示事件标题。我目前正在使用Event.objects.filter(order_reference=self.kwargs['order_reference'],).first()检索事件标题。我现在想知道.first()是否是正确的方法?

我主要是问,因为我可以获得该事件名称的另一种方法是使用object_list。这样可以减少数据库查询,但是我会有不必要的for loop,我必须在一个周期{% for tickets in object_list %}{{ tickets.order.event.name }}{% endfor %}之后停止操作

views.py

# Create your views here.
class OrderListView(ListView):

    allow_empty = False
    template_name = 'orders/order_list.html'

    def get_queryset(self):
        return OrderItem.objects.filter(
            order__order_reference=self.kwargs['order_reference'],
        )

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['event'] = Event.objects.filter(
            order_reference=self.kwargs['order_reference'],
        ).first()

        return context

order_list.html:

{% extends "base.html" %}

{% block content %}

<h1>{{ event.event.name }}</h1>

{% for tickets in object_list %}
    {{ tickets.ticket_name }}
{% endfor %}

{% endblock content %}

0 个答案:

没有答案