【问题标题】:Django generic view Template loading problemDjango通用视图模板加载问题
【发布时间】:2011-09-18 11:05:53
【问题描述】:

我在一个名为“经理”的应用程序中有以下视图:

class AddObj(CreateView):
    model = Obj
    form_model = ObjForm
    template_name = 'obj_add.html'
    success_url = 'obj'
    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(AddWar, self).dispatch(*args, **kwargs)

模板位于: [项目文件夹]/templates/manager/obj_add.html

如果我指定 template_name='manager/obj_add.html',它会加载。

另外,由于我使用 django 模板依赖项来创建面包屑,我希望 obj_add.html 从 templates/manager/m_base.html 扩展,它从 templates/structure.html 扩展并添加到面包屑块的链接,如果我调用 {% extends "manager/m_base.html" %},它就会加载。

我的问题是:django 不是通过模板文件夹递归查找模板吗?必须指定文件夹正常吗?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    设置模板时指定应用名称的原因是双重的;可能有多个同名模板,您可以覆盖项目级模板。

    第三方应用程序通常具有基本模板,但您可能希望根据自己的目的随机或覆盖某些块。例如:

    应用模板:

    [project]/manager/templates/manager/obj_add.html
    

    项目覆盖模板:

    [project]/templates/manager/obj_add.html
    

    您可以更改 locations where templates will be loaded 的来源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-14
      • 2013-04-14
      • 2015-06-02
      • 1970-01-01
      • 2016-04-27
      • 2013-02-14
      • 2012-09-13
      • 2015-03-01
      相关资源
      最近更新 更多