2016-01-28 40 views
5

Mam dzisiaj do czynienia z dziwnym problemem. Dostaję TemplateDoesNotExist (patrz pierwszy obraz), ale kiedy próbowałem debugować źródło szablonu z debug-toolbar, to poprawnie pokazuje ścieżkę szablonów (patrz zdjęcie 2). Co dziwniejsze, kiedy kliknąłem na przycisk konkretnych szablonów, to poprawnie pokazuje źródło szablonu .Otrzymywanie błędu TemplateDoesNotExist w django 1.9

Po raz pierwszy spotykam się z takimi problemami. Czy ktoś może mi wyjaśnić, dlaczego otrzymuję ten błąd.

EDIT: Dodawanie settings.py plik (obowiązujących, odnośnych część)

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

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [os.path.join(SETTINGS_PATH, 'templates')], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 
     ], 
    }, 
}, 

]

Dzięki

enter image description here

enter image description here)

+0

Zamiast publikować trudne do odczytania obrazy tekstu, * umieść właściwy tekst * ... wraz z niezbędnymi informacjami do odtworzenia błędu – Sayse

+0

Po prostu chcę zrozumieć, dlaczego otrzymuję wyjątek TemplateDoesNotExist, mimo że szablon istnieje na ścieżce ? Sprawdź drugi obraz po kliknięciu "Szablony" na pasku narzędzi debugowania .. (prawa strona) ... Proszę, pomóż mi zrozumieć problem ... Utknęłam na tym przez bardzo długi czas – user3265443

+0

Powinieneś dołączyć jakieś użyteczne części śladu od wyjątku. – Jmills

Odpowiedz

13

Miałem podobny problem z Django 1.9. Właśnie zmieniłem plik settings.py w.

Spróbuj

'DIRS': [os.path.join(BASE_DIR,'templates')], 

zamiast swojego

'DIRS':[os.path.join(SETTINGS_PATH,'templates')], 

Spróbuj kod zamiast swoimi SZABLONY

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [os.path.join(BASE_DIR,'templates')], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 

     ], 
    }, 
},] 
4

uaktualnieniu do 1,9 dzisiaj i nagle miał ten sam problem . Wydaje mi się, że dodanie "APP_DIRS": True "do szablonów działa (przełączyłem kilka razy dodając/usuwając to i działa/nie działa).

Co robi aplikacja APP_DIRS: jeśli dobrze zrozumiem dokumentację (https://docs.djangoproject.com/en/1.9/ref/templates/api/) poprawnie odczyta ona domyślne szablony Django, jeśli jest True. Zasadniczo, w przypadku 95% wszystkich projektów powinno tak być.