django-pagination 对 django-filter 结果进行分页
django-pagination to paginate django-filter results
我正在尝试对 django-filter 的结果进行分页。
- Django 1.8.3
- django 过滤器 0.11.0
- django-分页 1.0.7
我已经按照相关文档中的建议配置了view/templates,我的看法
class ItemFilter(django_filters.FilterSet):
class Meta:
template_name = 'library/items.html'
model = Item
fields = ['type','publishing','author','tags']
order_by = ['id']
def itemimages(request):
f = ItemFilter(request.GET, queryset=Item.objects.all())
return render_to_response('library/images.html', {'filter': f})
我的模板
{% extends 'library/base.html' %}
{% load pagination_tags %}
{% block title %}Library Index{% endblock %}
{% block body_block %}
{% load staticfiles %}
<ul class="rig columns-3">
{% autopaginate filter 2 as filter_list %}
{% for obj in filter_list %}
<li>
<a href="/library/{{ obj.id }}/">
<img src="{% static "/" %}{{ obj.cover.url }}"/>
<p>{{ obj.title }}<br/>{{ obj.national_title }}</p>
</a>
</li>
{% endfor %}
{% paginate %}
</ul>
{% endblock %}
{% block sidebar_block %}
<form action="" method="get">
{{ filter.form.as_p }}
<input type="submit"/>
</form>
{% endblock %}
但我只能看到错误消息(它在没有自动分页块的情况下工作)
KeyError at /library/
'request'
Request Method: GET
Request URL: http://localhost:8000/library/
Django Version: 1.8.3
Exception Type: KeyError
Exception Value:
'request'
Exception Location: /usr/lib64/python2.7/site-packages/django/template/context.py in __getitem__, line 71
Python Executable: /usr/bin/python2.7
Python Version: 2.7.5
请帮我找出我错在哪里。 django-filter 上的文档建议列表可以作为 f.qs
获得,但它对我没有用。
尝试使用 render
快捷方式而不是 render_to_response
呈现您的视图,以便 request
对象在模板上下文中可用。
from django.shortcuts import render
def itemimages(request):
f = ItemFilter(request.GET, queryset=Item.objects.all())
return render(request, 'library/images.html', {'filter': f})
我正在尝试对 django-filter 的结果进行分页。
- Django 1.8.3
- django 过滤器 0.11.0
- django-分页 1.0.7
我已经按照相关文档中的建议配置了view/templates,我的看法
class ItemFilter(django_filters.FilterSet):
class Meta:
template_name = 'library/items.html'
model = Item
fields = ['type','publishing','author','tags']
order_by = ['id']
def itemimages(request):
f = ItemFilter(request.GET, queryset=Item.objects.all())
return render_to_response('library/images.html', {'filter': f})
我的模板
{% extends 'library/base.html' %}
{% load pagination_tags %}
{% block title %}Library Index{% endblock %}
{% block body_block %}
{% load staticfiles %}
<ul class="rig columns-3">
{% autopaginate filter 2 as filter_list %}
{% for obj in filter_list %}
<li>
<a href="/library/{{ obj.id }}/">
<img src="{% static "/" %}{{ obj.cover.url }}"/>
<p>{{ obj.title }}<br/>{{ obj.national_title }}</p>
</a>
</li>
{% endfor %}
{% paginate %}
</ul>
{% endblock %}
{% block sidebar_block %}
<form action="" method="get">
{{ filter.form.as_p }}
<input type="submit"/>
</form>
{% endblock %}
但我只能看到错误消息(它在没有自动分页块的情况下工作)
KeyError at /library/
'request'
Request Method: GET
Request URL: http://localhost:8000/library/
Django Version: 1.8.3
Exception Type: KeyError
Exception Value:
'request'
Exception Location: /usr/lib64/python2.7/site-packages/django/template/context.py in __getitem__, line 71
Python Executable: /usr/bin/python2.7
Python Version: 2.7.5
请帮我找出我错在哪里。 django-filter 上的文档建议列表可以作为 f.qs
获得,但它对我没有用。
尝试使用 render
快捷方式而不是 render_to_response
呈现您的视图,以便 request
对象在模板上下文中可用。
from django.shortcuts import render
def itemimages(request):
f = ItemFilter(request.GET, queryset=Item.objects.all())
return render(request, 'library/images.html', {'filter': f})