修改Django布局结构后访问Django模板

时间:2018-01-10 11:24:38

标签: django django-templates django-settings

我按照以下方式重新组织了Django:

config
 - settings
     - base.py
     - local.py
 urls.py
 wsgi.py  

还有应用:

- apps(level0)
  - acc(level_1)
   - users(level_2)
     - templates
       - users
    - acc_control(level_2)
  -att(level_1)
    - notes (level_2)
    - notifications (level_2)
  - mark(level_1)
- config (level0)
- templates(level0) 

某些应用程序直接位于应用程序文件夹中,ex标记,其他应用程序位于其他子文件夹中,ex用户

   BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]

我的问题是关于模板访问,因为我收到以下错误:

\apps\acc\users\templates\users\templates\users\detail.html (Source does not exist)

正在重复内部文件夹;

View中,模板设置为:

 template_name = 'users/templates/users/detail.html'

我也试过了:

 template_name = '/users/detail.html'

1 个答案:

答案 0 :(得分:2)

设置users/templates/时,您不需要template_name前缀。只要您的'APP_DIRS': True设置中有TEMPLATES,应用程序目录加载器就会检查每个已安装应用的templates目录,包括users/templates

template_name = 'users/detail.html'