Как задать ограничение цикла django в тегах?

Есть минилента с новостями, нужно ограничить количество новостей до 5
  • Вопрос задан
  • 875 просмотров
Пригласить эксперта
Ответы на вопрос 2
@deliro
Если нужен паджинатор:
from django.views.generic import ListView

class NewsList(ListView):
    model = News
    paginate_by = 5


Если просто выкинуть 5 последних:
News.objects.all()[:5]

В теги это лучше не совать. Но если очень хочется сделать это в шаблоне:
class News(Model):
    # Твоя модель новостей
    @classmethod
    def last_five(cls):
        return cls.objects.all()[:5]


Затем передать модель в контекст:
return render(request, 'template.html', {'News': News})


И в шаблоне написать:
<div class="my-very-own-news">
    {% for news in News.last_five %}
        {{ news }}
    {% endfor %}
</div>
Ответ написан
Комментировать
zelsky
@zelsky
Вот пример.
news = AllNews.objects.order_by('pk')[0:5]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы