Добавление следующей / предыдущей кнопки в сообщениях в блоге

Использование BigDecimal для округления:

String s1="0.01";
int i1 = new BigDecimal(s1).setScale(0, RoundingMode.HALF_UP).intValueExact();

String s2="0.5";
int i2 = new BigDecimal(s2).setScale(0, RoundingMode.HALF_UP).intValueExact();
3
задан Rushikesh Mokashi 13 July 2018 в 09:28
поделиться

1 ответ

Я думаю, вы пытаетесь сделать слишком много. У Django есть поддержка этого, он даже имеет большую поддержку при рендеринге списков и обеспечивает, чтобы пользователь вошел в систему.

Мы можем использовать класс на основе для этого : a ListView:

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import ListView

class PostListView(LoginRequiredMixin, ListView):
    model = Post
    template_name = 'dashboard/postlist.html'
    paginate_by = 5
    queryset = Post.objects.order_by('-date')

В вашем шаблоне dashboard/postlist.html вы можете добавить логику для отображения кнопок. Например,

<!-- render the list -->

{% if is_paginated %}
    {% if page_obj.has_previous %}
        <a href="?page={{ page_obj.previous_page_number }}">previous</a>
    {% endif %}
    {% if page_obj.has_next %}
        <a href="?page={{ page_obj.next_page_number }}">next</a>
    {% endif %}
{% endif %}

В urls.py вы можете использовать PostListView.as_view() вместо PostLists. Таким образом, ListView будет обрабатывать проверку подлинности, нарезку, разбиение на страницы и т. Д.

5
ответ дан Willem Van Onsem 17 August 2018 в 13:16
поделиться