5

Django의 Createview에서 변수를 선언하여 템플릿에서 사용할 수 있습니까? 예를 들어 템플릿에 {{place_slug}}을 (를) 사용하고 싶습니다. I 통과하는 urls.py에서 아래 같은Django - CreateView - 변수를 선언하고 템플릿에서 사용하는 방법

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 
+0

urls.py에서'PictureCreateView.dispatch'를 호출하면 안됩니까? – vikki

+1

as_view는 [correct]입니다 (https://docs.djangoproject.com/en/dev/topics/class-based-views/#simple-usage) – dokkaebi

+0

@dokkaebi 알겠습니다! – vikki

답변

12

무시 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에서 자세한 내용을 알아보십시오.

관련 문제