我有以下代码
---- urls.py ----
url(r'^(?P<city_slug>[-\w]+)/$',
BookingWizard.as_view(),
name='city_booking'),
---- views.py ----
class BookingWizard(SessionWizardView):
def get_context_data(self, form, **kwargs):
context = super(BookingWizard, self).get_context_data(form, **kwargs)
cities = City.objects.all()
context.update({'cities': cities,
'city': City.objects.get(slug=kwargs['city_slug'])})
return context
问题是我在kwargs['city_slug']
方法中尝试访问get_context_data()
时出现严重错误。
虽然我可以毫无问题地访问kwargs['city_slug']
方法中的done()
。
有什么想法吗?
答案 0 :(得分:5)
您可以使用self.kwargs
访问kwargs。这是因为它是as_view()
View
方法设置的SessionWizardView
方法,它是{{1}}的超类。
https://github.com/django/django/blob/master/django/views/generic/base.py#L61-68