【发布时间】:2016-08-13 17:47:37
【问题描述】:
我已阅读此问题中的出色解释 Dynamically filter ListView CBV in Django 1.7。
但我不想在查询集上获得额外的帮助。
# 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”参数,回退到标准查询集的 DRY 方法是什么?
我想采用这种方法,因为我认为为完整的 Queryset 和 Custom/Filtered Queryset 做额外的视图或额外的 urlpattern 没有意义。
【问题讨论】: