【问题标题】:Custom pagination in Django is not working properlyDjango 中的自定义分页无法正常工作
【发布时间】:2021-02-01 09:51:09
【问题描述】:

我在 django 中使用下拉列表创建了一个分页,其中列出了供用户选择的页面。选择任何值时,调用JavaScript函数调用Django后端以获取数据。

来自 django 的响应对象包括被选中的页码,以便在 HTML 中保持选中相同的页面(因为页面重新加载以呈现模板)。

<div>
    Pages :
<select name="pagination" id="pagination_id" onchange="pageChange()">
    {% for i in pages %}
    <option value={{i}} {% if page_selected == i %} selected="selected" {% endif %}> {{i}} </option>
    {% endfor %}
</select>
</div>

但是,即使 HTML 表格中的数据发生变化,下拉选择始终是第一项。 page_selected 中的值是合适的,但下拉菜单未在正确的页面上选择。我做错了什么?

【问题讨论】:

  • 你传递了什么作为上下文? pagespage_selected 是什么?
  • 上下文对象类似于 { 'pages':pages, 'page_selected':page_selected, ... } 其中 pages 是整数列表 [1,2,3 ... n] 和 page_selected是用户选择的下拉列表中的值(页面中的 n 个值之一)。 @WillemVanOnsem
  • 但很可能page_selected是一个字符串,一个包含数字序列的字符串,但5'5'不同。

标签: django pagination


【解决方案1】:

如果直接从request.GET 传递参数,那么page_selected 是一个字符串

你应该把它转换成一个整数,用int(…):

context = {
    'pages': pages,
    'page_selected': int(page_selected),
    # …
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 2014-07-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多