Django - перебор списка в обратном порядке
тег for в шаблоне Django не хочет перебирать список в обратном порядке! Это делает функция reversed. Pycharm подчеркивает и все
index.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>
{% for item in news reversed %}
{% endfor %}
</div>
</body>
</html>
views.py
def index(request):
news = News.objects.order_by('-created_at')
context ={'news': news, 'title': 'Список новостей'}
return render(request, template_name='news/index.html', context=context)
Чтобы вывести список в обратном порядке используйте .reverse()
:
views.py
def index(request):
news = News.objects.order_by('-created_at').reverse() # Добавлено
context ={'news': news, 'title': 'Список новостей'}
return render(request, template_name='news/index.html', context=context)
в шаблоне обращайтесь просто к списку:
index.html:
{% for item in news %}
{{item.field))
{% endfor %}