首页 文章

Django ListView self.kwargs

提问于
浏览
0

我正在使用 Django==1.11 . 正如我从基于类的视图中理解的那样,在本例中为ListView,您可以使用 self.kwargs 访问get_queryset中的url params,并回答herehere . 当我使用get_context_data和self.kwargs时,我没有问题 .

但我不能让它在get_queryset中工作 . 我已经尝试了很多替代方案,但我无法找到正确的选择 .

我的代码:

urls

urlpatterns = [
    url(r'^escuelas/(?P<level>(inicial|primario|secundario))/$', SchoolListView.as_view(), name='school-by-level-index'),
    #...

view

class SchoolListView(ListView):
    model = School
    template_name = 'edu/adminlte/school_index.html'

    def get_queryset(self):
        queryset = super(SchoolListView, self).get_queryset()
"""
Here below self.kwargs['level'] does not return anything as I would expect
"""
        level = self.kwargs['level']

        if level is 'inicial':
            queryset = School.objects.filter(level='I')
            return queryset
        return queryset

谢谢 .

1 回答

  • 0

    我知道这很简单:

    double equals vs is in python

    我的代码是:

    if level is 'inicial':
    

    但它必须是

    if level == 'inicial':
    

相关问题