0
我已經寫了這個Django ListView(我不是很熟悉它),我試圖用init覆蓋基於slug輸入的變量。不知何故,似乎init函數沒有對關鍵字參數的訪問。派遣功能完成這項工作很好,但我想知道爲什麼初始化不起作用。有任何想法嗎?Django ListView __init__接受關鍵字參數
代碼:
Views.py
from django.views.generic import ListView
form models import MyModel
class MyListView(ListView):
model = MyModel
template_name = 'index.html'
# does not work
def __init__(self, **kwargs):
print kwargs
return super(MyListView, self).__init__(**kwargs)
# works
def dispatch(self, request, *args, **kwargs):
print self.kwargs
return super(MyListView, self).dispatch(request, *args, **kwargs)
def get_queryset(self):
# filter for data based on category_slug input
def get_context_data(self, **kwargs):
context = super(MyListView, self).get_context_data(**kwargs)
return context
Urls.py:
url(r'^browse/(?P<category_slug>[a-zA-Z0-9-]+)', MyListView.as_view(), name='browse-category'),
對不起,我應該更好地解釋一下這個問題。我意識到這一點,仍然得到一個'AttributeError:'MyListView'對象在調用'self.kwargs'時沒有屬性'kwargs''? –