我尝试进行查询,命令对象然后返回前100个。
Orders.objects.order_by('date', 'time')[:100]
但是我收到了这个错误。
Cannot reorder a query once a slice has been taken.
我该如何进行此查询?
编辑: 上下文
from django.shortcuts import render
from django_tables2 import RequestConfig
from .models import Order
from .tables import OrderTable
def order(request):
table = OrdersTable(Orders.objects.order_by('date', 'time')[:100])
RequestConfig(request).configure(table)
return render(request, 'view_orders/index.html', {'table': table})
# app/tables.py
import django_tables2 as tables
from .models import Order
class OrderTable(tables.Table):
class Meta:
model = Order
attrs = {'class': 'table', 'id': 'Order'}
答案 0 :(得分:0)
Django-tables2给出了这个错误,它需要在查询上调用顺序,但是你传递的是已切片的列表。本reported issue解释了解决方法。您也可以仅使用doc中提供的示例中的渲染部分:
from django.shortcuts import render
def people(request):
return render(request, 'people.html', {'people': Person.objects.all()})
表示模板:
{# tutorial/templates/people.html #}
{% load render_table from django_tables2 %}
{% load static %}
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="{% static 'django_tables2/themes/paleblue/css/screen.css' %}" />
</head>
<body>
{% render_table people %}
</body>
</html>