Django-CreateView - как объявить переменную и использовать ее в шаблонах

как объявить переменную в Createview Django, чтобы я мог использовать ее из своего шаблона? Например, я хочу использовать {{ place_slug }} в шаблоне. Я передаю это от urls.py как ниже:

urls.py:

urlpatterns = patterns('',
    (r'^new/(?P<place_slug>[w-_]+)/?$', PictureCreateView.as_view(), {}, 'upload-new'),
)

views.py:

class PictureCreateView(CreateView):
    model = Picture

    def dispatch(self, *args, **kwargs):
        self.place = get_object_or_404(Place, slug=kwargs['place_slug'])
        return super(PictureCreateView, self).dispatch(*args, **kwargs)

    def form_valid(self, form):
        more code here

1 ответов


переопределить get_context_data и установить context_data ['place_slug'] = your_slug

что-то вроде этого:

def get_context_data(self, **kwargs):
    context = super(PictureCreateView, self).get_context_data(**kwargs)
    context['place_slug'] = self.place.slug
    return context

дополнительная информация об этом в Django docs.