我读过这个问题的精彩解释 Dynamically filter ListView CBV in Django 1.7。在
但我不想在queryset上得到额外的帮助。在
# urls.py
urlpatterns = patterns('',
url(r'^(?P<exp>[ASG])$', \
ScholarshipDirectoryView.as_view(),\
name='scholarship_directory'),)
# views.py
class ScholarshipDirectoryView(ListView):
queryset= Scholarship.objects.all()
model = Scholarship
template_name = 'scholarship-directory.html'
def get_queryset(self):
qs = super(ScholarshipDirectoryView, self).get_queryset()
return qs.filter(experience_level__exact=self.kwargs['exp'])
如果url中缺少“exp”参数,那么回退到标准queryset的干法是什么?在
我想采用这种方法,因为我认为对完整的Queryset和定制/过滤的Queryset执行额外的视图或额外的urlpattern是没有意义的。在
只需用
if
包装它。在相关问题 更多 >
编程相关推荐