Django:使用 urls.py 进行分页

Posted

技术标签:

【中文标题】Django:使用 urls.py 进行分页【英文标题】:Django: Pagination with urls.py 【发布时间】:2010-12-28 10:22:45 【问题描述】:

我正在 Django 中构建一个博客(使用通用视图),并且我对基于日期的视图和列表详细信息视图使用相同的模板。我正在尝试设置分页,但我想使用 URL 模式而不是使用丑陋的 ?page=1 url 后缀。

问题出在实际的 html 模板中,我找不到方法来确定用于呈现页面的视图,因此虽然我可以访问所有分页内容,但我无法生成适当的 URL。

换句话说,如果视图是由我的 archive_month(request, month, year, page=0) 视图呈现的,我需要将下一页和上一页的 URL 构造为 /blog/dec/2009/PageX /,而不是博客索引,这意味着 URL 将是 /blog/pageX/。

【问题讨论】:

您可能认为 ?page=x 很“丑陋”,但我会说这是更好的做法。不同的页面不是不同的资源,而是同一资源的不同视图。因此它应该具有相同的 URL,并通过 GET 参数进行区分。 这实际上是一个很好的观点。如果您将其发布为答案,我会排除它。 【参考方案1】:

我刚刚意识到基于日期的通用视图不支持分页,所以问题解决了。

【讨论】:

以上是关于Django:使用 urls.py 进行分页的主要内容,如果未能解决你的问题,请参考以下文章

django 分页组件

Django:如何获取当前 URL 标记名(用于分页)?

使用 Django,有没有更好的方法在 urls.py 中动态导入视图?

Django自带分页

Django:使用任意 URL 组件进行反向 URL 查找

Django 忽略对 urls.py 的更新