2014-01-20 32 views
1

我有两个应用程序,包括adminAppmobileApp。两者都有自己的模板目录并完全分离。不幸的是,当我例如时,django不断查找错误的目录。Django在扩展时无法区分模板目录

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
) 

INSTALLED_APPS = (
    ... 
    'adminApp', 
    'mobileApp', 
    ... 
) 

我的目录结构是:使用extend,它根据INSTALLED_APPS顺序眺望第一模板目录

adminApp/ 
    templates/ 
     base.html 

mobileApp/ 
    templates/ 
     base.html 

所以基本上会发生什么情况是,当我有一个文件,如mobileApp/templates/pages/index.html{% extends "base.html" %}它使用adminApp/templates/base.html而不是它自己的。

我该如何避免这种情况并让它们分开?

回答

1

您的应用程序不遵循Django约定的模板目录。该应用程序的名称应重复,以避免此问题:

adminApp/ 
    templates/ 
     adminApp/ 
      base.html 

mobileApp/ 
    templates/ 
     mobileApp/ 
      base.html 

然后,您可以明确地指定哪个模板希望延长:

{% extends "mobileApp/base.html" %} 
+0

有,我可以把这个'mobileApp'目录复制到任何机会一个变量呢? – JavaCake

+0

此结构给我提供了覆盖默认登录系统的'registration'目录的问题:http://stackoverflow.com/q/21242912/531203 – JavaCake