5

Django'nun Createview'ında bir değişkeni nasıl bildirebilirim, bu yüzden şablonundan kullanabilirim? Örneğin, şablonda {{place_slug}} kullanmak istiyorum. I geçmesi urls.py aşağıda gibi:Django - CreateView - Değişken bildirme ve şablonlarda nasıl kullanılır

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 sayfasından 'PictureCreateView.dispatch' çağırmıyor olmanız gerekir mi? – vikki

+1

as_view [doğru] (https://docs.djangoproject.com/en/dev/topics/class-based-views/#simple-usage) – dokkaebi

+0

@dokkaebi Görüyorum! – vikki

cevap

12

geçersiz kılma get_context_data ve set context_data [ 'place_slug'] = your_slug

Böyle bir şey:

Django docs ile ilgili daha fazla bilgi.

İlgili konular