В моем приложении django есть несколько разных способов получения объекта QuerySet той же модели.
Я бы хотел использовать одну функцию для рендеринга данных - и она работала нормально, пока я не решил добавить как самое раннее , так и самое позднее время для отображения поверх список.
Вот моя последняя попытка:
def render_list(request, objList):
latest = earliest = None
if objList:
latest = objList.latest('time').time
earliest = objList.earliest('time').time
context = {'objList': objList,
'earliest': earliest,
'latest': latest,
}
return render(request, 'list.html', context)
Появляется сообщение об ошибке:
TypeError: Cannot reverse a query once a slice has been taken.
Есть ли способ обойти эту проблему?
Подробнее:
Функция render_list
вызывается несколькими функциями просмотра в views.py
, например:
def list_all(request):
objList = MyTable.objects.order_by('ip')
return render_list(request,objList)
def detail(request, ip, group):
objList = MyTable.objects
try:
item = MyTable.objects.get(ip=ip)
# display the details page...
except MyTable.DoesNotExist:
objList = MyTable.objects.complex_filter(...)
# more code
# ...
return render_list(request, objList)
и соответствующие строки в urls.py
path('list', views.list_all)
path('<group>/<ip>', views.detail)