0
ページネーションとフィルタリングを使用する際に問題があります。 CBV(ListView)でdjango-filter
フィルタリングとページネイターを使用しています。 すべて動作しています。 paginatorはフィルタリング後にボックスをラップしますが、問題はテンプレートのpaginatorのボタンにあります。 NEXTまたはPREVを押すと フィルターがリセットされます。私は解決策が見つかりました:Djangoページネーション+フィルタ
<span><a href="?page={{ page_obj.previous_page_number }}
{% for key,value in request.GET.items %}
{% ifnotequal key 'page' %}&{{ key }}={{ value }}{% endifnotequal %}
{% endfor %}">Previous</a>
</span>
をしかし、これは完全に問題を解決していませんので、私は私のフィルターからのリクエストを送信することができます。
?item_title=&description=&ordering=&popular=&min_price=&max_price=&category_brands=11&category_brands=13
そして、私は2 category_brands URLに=と、このソリューションを持っているので、私は2つの同一のキーを持つことができないので動作しません。私を助けてください。テンプレートで // tamplate_tag
@register.simple_tag(takes_context=True)
def url_replace(context, **kwargs):
query = context['request'].GET.copy()
for kwarg in kwargs:
try:
query.pop(kwarg)
except KeyError:
pass
query.update(kwargs)
return mark_safe(query.urlencode())
:
{% load <your_templatetag_name> %}
...
<a href="?{% url_replace page=page_obj.previous_page_number %}">Previous</a>
...
<a href="?{% url_replace page=page_obj.next_page_number %}">Next</a>
それは私の作品
問題はあなたのparamsの編成にあると思います。 '?item_title =&description =&ordering =&popular_&min_price =&max_price =&category_brands = 11&category_brands = 13'です。これに関連するビットを検索します。 '=&'は奇妙に思えます... – Dalton
こんにちは& - それはクエリフィールドから値を貼り付けるようなものです。 フィルタの値が==> min_price = 1&category_brands = 13であり、min_price =&category_brandsでない場合は –
私がここに当てはまらない場合は、別の解決方法、フィルタとページ番号を組み合わせる方法、互いに重ならないでください –