直接上代码吧:
# views.py
def accesslog(request):
state = login_status(request.user.is_authenticated())
log_list = AccessLog.objects.all().order_by()
paginator = Paginator(log_list, 10)
current_page_num = request.GET.get('page', 1)
try:
current_page = paginator.page(current_page_num)
except EmptyPage:
current_page = paginator.page(paginator.num_pages)
except PageNotAnInteger:
current_page = paginator.page(1)
return render(request, 'radius/accesslog.html', {
'current_page': current_page,
'paginator': paginator,
'state': state
})
# templatetags/mytag.py
from django import template
register = template.Library()
@register.filter(name='substra')
def substra(value, arg):
try:
return int(value) - int(arg)
except:
return ''
HTML
# accesslog.html
{% load mytag %}
<div class="container">
<table class="table table-condensed">
{% for log in current_page.object_list %}
<tr>
<td>{{ log.id }}</td>
<td>{{ log.username }}</td>
<td>{{ log.ipaddr }}</td>
<td>{{ log.access_datetime|date:"Y-m-d H:s" }}</td>
{% if log.status %}
<td><span class="label label-success">认证成功</span></td>
{% else %}
<td><span class="label label-danger">认证失败</span></td>
{% endif %}
<td>{{ log.message }}</td>
</tr>
{% endfor %}
</table>
<nav>
{# {{ current_page.paginator.num_pages }}#}
<ul class="pagination">
{% if current_page.number > 3 %}
<li ><a href="?page=1">第一页</a></li>
{% endif %}
{% if current_page.number == 1 %}
<li><a href="?page={{ current_page.number }}">1</a></li>
{% endif %}
{% if current_page.number > 2 %}
<li><a href="?page={{ current_page.number|substra:2 }}">{{ current_page.number|substra:2 }}</a></li>
<li><a href="?page={{ current_page.previous_page_number }}">{{ current_page.previous_page_number }}</a></li>
<li><a href="?page={{ current_page.number }}">{{ current_page.number }}</a></li>
{% elif current_page.number == 2 %}
<li><a href="?page={{ current_page.previous_page_number }}">{{ current_page.previous_page_number }}</a></li>
<li><a href="?page={{ current_page.number }}">{{ current_page.number }}</a></li>
{% endif %}
{% if current_page.number|add:2 <= current_page.paginator.num_pages %}
<li><a href="?page={{ current_page.next_page_number }}">{{ current_page.next_page_number }}</a></li>
<li><a href="?page={{ current_page.number|add:2 }}">{{ current_page.number|add:2 }}</a></li>
<li><a href="?page={{ current_page.paginator.num_pages }}">最后一页</a></li>
{% elif current_page.number == current_page.paginator.num_pages %}
{# nothing to do#}
{% elif current_page.number|add:2 >= current_page.paginator.num_pages %}
<li><a href="?page={{ current_page.next_page_number }}">{{ current_page.next_page_number }}</a></li>
{% endif %}
</ul>
</nav>
</div>
</div>
{% include 'radius/footer.html' %}
<script>
$(document).ready(function(){
$('.pagination li a').each(function(){
if ( $(this).html() == {{ current_page.number }} ){
$(this).parent().addClass('active')
}
});
})
</script>
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。