Django通用视图模板加载问题

时间:2011-06-20 06:53:36

标签: django django-templates

我在名为'manager'的应用中有以下视图:

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扩展并添加一个指向breadcrumb块的链接,如果我调用{%extends“manager / m_base.html”%},它就会加载。

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

1 个答案:

答案 0 :(得分:2)

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

第三方应用程序通常会有基本模板,但您可能希望根据自己的需要对某些块进行随机播放或覆盖。例如:

应用模板:

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

项目覆盖模板:

[project]/templates/manager/obj_add.html

您可以更改locations where templates will be loaded