Как отобразить 3 последних элемента в django
Есть ли способ запросить модель django, чтобы отобразить последние 3 элемента в секции моего шаблона и отобразить следующие 3 в следующей части моего шаблона по порядку? например: some_list это ['a', 'b', 'c', 'd', 'e', 'f', 'g'], поэтому [:3] дает вам ['a','b','c'] так как же мне получить следующие 3 от 'd' до 'f' в моем запросе?
Да.
Если вы передаете object_list
в контекстных данных, вы можете сделать что-то вроде этого.
{% for o in object_list|slice:":3" %}
{{ o }}<br>
{% endfor %}
<section>
Miscellaneous HTML Stuff
</section>
{% for o in object_list|slice:"3:6" %}
{{ o }}<br>
{% endfor %}
Если в вашем контексте нет object_list
, то вы можете либо добавить его, либо создать две отдельные контекстные переменные с искомыми данными.
class MyView(ListView):
model = MyModel
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['list1'] = MyModel.objects.all()[:3]
context['list2'] = MyModel.objects.all()[3:6]
return context
И ваш шаблон будет перебирать list1
и list2
вместо object_list
.