如何在 Django 的 Createview 中声明变量,以便我可以从其模板中使用它?
例如,我想在模板中使用 {{ place_slug }} 。我从 urls.py 传递它,如下所示:
urls.py:
urlpatterns = patterns('',
(r'^new/(?P<place_slug>[\w\-\_]+)/?$', PictureCreateView.as_view(), {}, 'upload-new'),
)
视图.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
覆盖 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 文档 https://docs.djangoproject.com/en/dev/topics/class-based-views/#adding-extra-context.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)