首先,您需要更改urls.py,以便它将体验作为参数传递。像这样:
urlpatterns = pattern('',
url(r'^(?P <exp> [ASG])$',ScholarshipDirectoryView.as_view(),name ='scholarship_directory'),
)
(如果未通过/ A或/ S或/ G,则上面的代码将返回404)
现在,在 kwargs
CBV的属性中,我们将有一个名为kwarg的名称exp
,该get_queryset
方法可用于根据经验水平进行过滤。
class ScholarshipDirectoryView(ListView):
模式=奖学金
template_name ='scholarship-directory.html'
def get_queryset(self):
qs =超级(ScholarshipDirectoryView,self).get_queryset()
返回qs.filter(experience_level__exact = self.kwargs ['exp'])