我一直在尝试构建自己的分页标签 - pagetag。
但是当我渲染时:
{% if people.has_previous %}
<li><a href={% pagetag people.previous_page_number %}>«</a></li>
{% else %}
<li class="disabled"><a href="#">«</a></li>
{% endif %}
{% for page in people.paginator.page_range %}
{% if page == people.number %}
<li class="disabled"><a href="#">{{page}}</a></li>
{% else %}
<li><a href={% pagetag page %}>{{page}}</a></li>
{% endif %}
{% endfor %}
{% if people.has_next %}
<li><a href={% pagetag people.next_page_number %}>»</a></li>
{% else %}
<li class="disabled"><a href="#">»</a></li>
{% endif %}
我在第一页上获得了以下链接:
<li class="disabled"><a href="#">«</a></li>
<li class="disabled"><a href="#">1</a></li>
<li><a href=/?page=page>2</a></li>
<li><a href=/?page=page>3</a></li>
<li><a href=/?page=people.next_page_number>»</a></li>
不是所需的?page = 2等等。
def pagetag(parser, token):
tokens = token.split_contents()
print tokens
if len(tokens) < 1:
raise TemplateSyntaxError, "pagetag takes at least 1 arguments"
return PageNode(tokens[1].strip())
如何正确传递参数?
答案 0 :(得分:1)
使用simple tags。例如:
@register.simple_tag
def pagetag(page):
return '/?page=' + page
然后,在您看来,请务必使用{{ }}
代替{% %}
:
<li><a href="{{ pagetag page }}">{{page}}</a></li>
注意:建议不要仅使用其他标记来添加简单的字符串。就像在documentation中一样。