Использование 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();
Я думаю, вы пытаетесь сделать слишком много. У 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
будет обрабатывать проверку подлинности, нарезку, разбиение на страницы и т. Д.