Django在get_context_data()方法中访问Form向导中的url参数

时间:2013-04-29 10:45:54

标签: django django-formwizard

我有以下代码

---- 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()

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您可以使用self.kwargs访问kwargs。这是因为它是as_view() View方法设置的SessionWizardView方法,它是{{1}}的超类。

https://github.com/django/django/blob/master/django/views/generic/base.py#L61-68