Django Templating:使用base.html和base_popup.html一次性渲染CreateView

时间:2016-03-18 14:30:37

标签: django django-templates

我有一个基于类的视图FooCreate,我想在两个不同的页面上使用它:

  • 普通创建视图:包含所有正常的页眉和页脚部分:扩展我的base.html
  • 弹出窗口中的
  • :这里我想要没有可见的页眉和页脚部分:扩展(尚不存在)base_popup.html

我想在没有单一" if"的情况下实现这个,因为我喜欢无条件代码: - )

1 个答案:

答案 0 :(得分:1)

我建议您结帐how Django Admin handles this with IS_POPUP_VAR

基本上,Django Admin使用' _popup'参数在querystring中传递。然后你可以传递一个" base_layout"变量到上下文。

class MyView(View):
    def get_context_data(self, **kwargs):
        if '_popup' in request.GET:
            kwargs['base_layout'] = 'base_popup.html'
        return super().get_context_data(**kwargs)

您的模板将以:

开头
{% extends base_layout|default:"base.html" %}