4

次のコードがあります

---- URL.py ----

url(r'^(?P<city_slug>[-\w]+)/$',
    BookingWizard.as_view(),
    name='city_booking'),

---- ビュー.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()

何か案は?

4

1 に答える 1

6

を使用して kwargs にアクセスできますself.kwargs。これは、 のスーパークラスであるのas_view()メソッドに設定されるためです。ViewSessionWizardView

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

于 2013-04-29T11:52:52.013 に答える