django學習 如何實現分頁時序號的連續

2021-08-15 02:39:54 字數 1527 閱讀 2484

在django中,一般通過自帶的paginator進行分頁,具體內容可以見官方文件。

我們在對資料進行迴圈時,如果需要標上序號,可以採用forloop方法,如下所示:

}

具體使用細節,可以見我之前的部落格:採用forloop對模板中的資料進行排序

針對以上思路,具體操作如下:

1、自定義乘法過濾器

原理見官方文件,這裡只給出步驟:

首先在你的專案下,建立乙個templatetags的包,裡面新建乙個py檔案,名字任意,本人的如下:

blog_tags.py中寫入:

from django import template

register = template.library()

@register.filter

defmultiply

(value, num):

#定義乙個乘法過濾器

return (value-1)*num

在模板中,可以這麼寫:

...}

這裡page.number代表當前頁面的頁碼,也就是第幾頁,對應的是剛才定義的過濾器multiply函式中的value值。 5對應的是函式中的num值。

這樣,在其基礎上加上forloop.counter即可,如下:

}

2、將setting.py中的常量新增到模板中上面的**中顯示的每頁數目是5,當對其改變的話,還需要將模板中的都改過來,如果頁面多的話,改起來很麻煩,不符合程式設計原則。我們可以將值在setting.py中設定,然後新增到上下文管理器中,這樣在整個模板中就可以用了。

本方法參考於:

首先,在setting.py中設定每頁的數量

haystack_search_results_per_page = 5

#分頁數目

from django.conf import settings

defpagenums

(request):

return

然後,再將其在setting.py中的context_processors進行繫結,如下:

templates = [,},

]

最後,直接在模板中就可以使用該變數haystack_search_results_per_page如下:

}

如此,即可實現翻頁後序號的連續。

django分頁學習

django中分頁的類是 paginator 需要匯入 from django.core.paginator import paginator 匯入分頁的類 l range 1,31 page obj paginator l,10 paginator的建構函式 傳乙個列表l,每頁顯示10條資料 pr...

django 實現分頁功能

分頁效果 檢視 1 coding utf 8 2 from django.shortcuts import render,get object or 404 3 from django.core.paginator import paginator,pagenotaninteger,emptypag...

輕鬆實現Django分頁

pip install djangorestframework安裝csrf第三方庫之後,我們就可以使用自帶分頁器paginator來進行內容的分頁 如果取不到分頁物件時,設定頁碼為1 page int request.get.get page 1 取分頁物件,orders為需要分頁的物件,一般為mo...