Django - CreateView - 如何声明变量并在模板中使用它

标签 django django-forms django-templates django-generic-views

我如何在 Django 的 Createview 中声明一个变量,以便我可以从它的模板中使用它?
例如我想在模板中使用 {{ place_slug }} 。我从 urls.py 传递它,如下所示:

网址.py:

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

View .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 docs .

关于Django - CreateView - 如何声明变量并在模板中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552337/

相关文章:

django - 如何在 django 中设置 choicefield 的值

python - 为什么表单中的 ImageField 总是触发 "invalid_image"?

python - Django:如何在包含模板标签中正确传递URL?

css - 正确使用CSS文件中的模板语言

python - 在 Django HTML 模板中使用 {% with %} 标签

python - 简单的URL映射问题

python - HTTPS设置后无法访问django网站

Django 管理员 : list_display() order by count of related object

python - 如何以下拉方式显示所有员工用户列表?

django - 从一个表单提交创建父模型对象和子模型对象