我在名为'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不是通过模板文件夹递归查找模板吗?必须指定文件夹是否正常?
答案 0 :(得分:2)
设置模板时指定应用名称的原因是双重的;可能有多个同名模板,您可以使用项目级模板覆盖。
第三方应用程序通常会有基本模板,但您可能希望根据自己的需要对某些块进行随机播放或覆盖。例如:
应用模板:
[project]/manager/templates/manager/obj_add.html
项目覆盖模板:
[project]/templates/manager/obj_add.html