2015-05-15 17 views
8

Điều này khiến tôi phát điên. Tôi đã làm điều gì đó kỳ lạ và có vẻ như các mục TEMPLATE_DIRS của tôi đang bị bỏ qua. Tôi chỉ có một tập tin settings.py, nằm trong thư mục dự án, và nó chứa:Django 1.8 TEMPLATE_DIRS bị bỏ qua

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'), 
    os.path.join(BASE_DIR, 'web_app/views/'), 
) 

Tôi đặt mẫu dự án cấp trong thư mục/templates, và sau đó có các thư mục để loại quan điểm khác nhau trong tôi thư mục ứng dụng (ví dụ: chế độ xem xác thực, chế độ xem tài khoản, v.v.).

Ví dụ, chính xem trang index của tôi là trong/views/main/views_main.py web_app và trông giống như

from web_app.views.view_classes import AuthenticatedView, AppView 


class Index(AppView): 
    template_name = "main/templates/index.html" 

nơi một AppView chỉ là một phần mở rộng của TemplateView. Dưới đây là vấn đề của tôi: khi tôi cố gắng truy cập vào trang, tôi nhận được một ngoại lệ TemplateDoesNotExist và phần đó là thực sự khó hiểu cho tôi là Template-Loader Sau cái chết:

Template-loader postmortem 

Django tried loading these templates, in this order: 
Using loader django.template.loaders.filesystem.Loader: 
Using loader django.template.loaders.app_directories.Loader: 
C:\Python34\lib\site-packages\django\contrib\admin\templates\main\templates\index.html (File does not exist) 
C:\Python34\lib\site-packages\django\contrib\auth\templates\main\templates\index.html (File does not exist) 

Tại sao trên thế giới là 'mẫu' và 'web_app thư mục/views 'không được tìm kiếm? Tôi đã kiểm tra Cài đặt thông qua trình gỡ lỗi và điểm dừng trong views_main.py và có vẻ như chúng đang ở trong đó. Có ai có một vấn đề tương tự? Cảm ơn.

Trả lời

24

Bạn đang sử dụng phiên bản Django nào? TEMPLATE_DIRS bị phản đối từ 1,8

Không dùng nữa kể từ phiên bản 1.8: Đặt tùy chọn dirs của một backend DjangoTemplates để thay thế.

https://docs.djangoproject.com/en/1.8/ref/settings/#template-dirs

Vì vậy, cố gắng này để thay thế:

TEMPLATES = [ 
    { 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [ 
     # insert your TEMPLATE_DIRS here 
    ], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      # Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this 
      # list if you haven't customized them: 
      'django.contrib.auth.context_processors.auth', 
      'django.template.context_processors.debug', 
      'django.template.context_processors.i18n', 
      'django.template.context_processors.media', 
      'django.template.context_processors.static', 
      'django.template.context_processors.tz', 
      'django.contrib.messages.context_processors.messages', 
     ], 
    }, 

    }, 
] 

Dưới đây là một liên kết đến một hướng dẫn nâng cấp: https://docs.djangoproject.com/en/1.8/ref/templates/upgrading/

+0

Yep. Điều đó là vậy đó. Vâng đó là một sử dụng vững chắc của hai giờ. Cảm ơn! – Gadzooks34