溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Django個(gè)性化分頁(yè)

發(fā)布時(shí)間:2020-07-04 02:14:44 來(lái)源:網(wǎng)絡(luò) 閱讀:686 作者:yxuqtr 欄目:開發(fā)技術(shù)

直接上代碼吧:


# 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">認(rèn)證成功</span></td>
                    {% else %}
                        <td><span class="label label-danger">認(rèn)證失敗</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">第一頁(yè)</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 }}">最后一頁(yè)</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>


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI