Python Django分页筛选结果CBV
如何在Django CBV中使用多个过滤器分页?我的视图和表单中有一些过滤器,我不知道如何分页。我尝试过的一切都失败了。 这是我的密码 models.py views.py form.htmlPython Django分页筛选结果CBV,python,django,pagination,Python,Django,Pagination,如何在Django CBV中使用多个过滤器分页?我的视图和表单中有一些过滤器,我不知道如何分页。我尝试过的一切都失败了。 这是我的密码 models.py views.py form.html 蒂波多文档 {tl%中l的%1} {%if l.tipo_lei==“complementar”%}Leis complementares {%elif l.tipo_lei==“ordinaria”} {%elif l.tipo_lei==“decreto”%}decreto {%elif l.tip
蒂波多文档
{tl%中l的%1}
{%if l.tipo_lei==“complementar”%}Leis complementares
{%elif l.tipo_lei==“ordinaria”}
{%elif l.tipo_lei==“decreto”%}decreto
{%elif l.tipo_lei==“Convencio”}市政府
{%elif l.tipo_lei==“portaria”}Portarias
{%endif%}
{%endfor%}
阿诺
{%中的l2为%}
{{l2.ano}}
{%endfor%}
佩斯奎萨尔
您需要的是一份工作
佩斯奎萨尔
result.html
{%if busca_leis%}
{对于busca_leis%中的lb为%1}
{{lb.titulo|safe}
{%endfor%}
{%else%}
O termo pesquisado nãO foi encontrado。利用过滤器实现一项pesquisar更新。
{%endif%}
{%if已分页%}
{%如果页面_obj.has_previous%}
{%else%}
- «李>
{%endif%}
{paginator.page_range%}
{%如果页码=i%}
- {{i}(当前)
{%else%}
{%endif%}
{%endfor%}
{%如果页面_obj.has_next%}
{%else%}
- »李>
{%endif%}
{%endif%}
当您单击分页时,现有的查询字符串将被删除,因此您需要有一种方法来传递该信息 最好的选择是将这些信息传递出去 首先将“django.core.context_processors.request”添加到settings.py
## settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
现在,您可以访问
在模板中,更改行:
<a href="?page={{ page_obj.next_page_number }}">
到
我试过了,但没用。过滤我的第一页url是这样的:但是修改代码:谢谢你的帮助,我真的很感激,它可以工作,但是当我到达第2页时出现了一个问题这里没问题url:当我到达下一页时,我遇到了一个问题url显示:根据你写的,你删除了“”环绕键!='第页'。for循环中的那一行正在检查querydict中的页面,而不是显示它。嘿!!!成功了。非常感谢。我相信它会帮助更多有同样问题的人。很高兴听到!如果你能接受我的回答,那就太好了。
<form method="get" action="{% url 'leis:busca_lei_view' %}">
<div class="form-group">
<select name="t" class="form-control">
<option value="">Tipo do documento</option>
{% for l in tl %}
<option value="{{ l.tipo_lei }}">
{% if l.tipo_lei == "complementar" %} Leis complementares
{% elif l.tipo_lei == "ordinaria" %} Leis ordinárias
{% elif l.tipo_lei == "decreto" %} Decretos
{% elif l.tipo_lei == "convenio" %} Convênios municipais
{% elif l.tipo_lei == "portaria" %} Portarias
{% endif %}
</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<input name="n" type="text" class="form-control" placeholder="numero da lei, portaria ou decreto" size="10" maxlength="30">
</div>
<div class="form-group">
<select name="a" class="form-control">
<option value="">ano</option>
{% for l2 in an %}
<option value="{{ l2.ano }}">{{ l2.ano }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<button value="{{ search_term }}" class="btn btn-info">pesquisar</button>
</div>
<hr />
<div class="form-group">
<label for="t"><strong>Ou digite um termo a ser pesquisado</strong></label>
<input name="p" class="form-control" type="text" placeholder="digite um termo a ser pesquisado" size="20" maxlength="30">
</div>
<button value="{{ search_term }}" class="btn btn-info">Pesquisar</button>
<div class="row">
<div class="col-xs-12">
{% if busca_leis %}
{% for lb in busca_leis %}
<h4 ><a href="{{ lb.arquivo.url }}" class="text-primary">
{% if lb.tipo_lei == "complementar" %}Lei complementar n° {% elif lb.tipo_lei == "ordinaria" %} Lei ordinária nº {% elif lb.tipo_lei == "decreto" %} Decreto nº {% elif lb.tipo_lei == "convenio" %} Convênio municipal {% else %} Portaria nº{% endif %} {{ lb.numero }} de {{ lb.ano }}</a>
</h4>
<p class="post-content">{{ lb.titulo|safe }}</p>
<br />
{% endfor %}
<br />
{% else %}
<br /><br />
<div class="alert alert-warning" role="alert">
<h5>
O termo pesquisado não foi encontrado. Utilize os filtros para realizar a pesquisar novamente.
</h5>
<a href="{% url 'leis:leis_view' %}" class="btn btn-warning">voltar</a>
</div>
{% endif %}
</div>
{% if is_paginated %}
<ul class="pagination">
{% if page_obj.has_previous %}
<li><a href="?page={{ page_obj.previous_page_number }}">«</a></li>
{% else %}
<li class="disabled"><span>«</span></li>
{% endif %}
{% for i in paginator.page_range %}
{% if page_obj.number == i %}
<li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
{% else %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}">»</a></li>
{% else %}
<li class="disabled"><span>»</span></li>
{% endif %}
</ul>
{% endif %}
## settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
<a href="?page={{ page_obj.next_page_number }}">
<a href="?page={{ page_obj.next_page_number }}{% for key, value in request.GET.items %}{% if key != page %}&{{key}}={{value}}{% endif %}{% endfor %}"