2016-01-28 25 views
5

Oggi sto affrontando strani problemi. Sto ottenendo TemplateDoesNotExist (vedi prima immagine) ma quando ho provato a eseguire il debug del template source con debug-toolbar sta mostrando correttamente il percorso dei template (vedi immagine 2) Più stranamente, quando ho cliccato sul pulsante dei template specifici mostra correttamente la fonte del template .ottenendo errore TemplateDoesNotExist in django 1.9

Questa è la prima volta che mi trovo di fronte a questi problemi. Qualcuno può spiegare perché sto ottenendo questo errore.

EDIT: Aggiunta di file di settings.py (porzione relavant)

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', 
     ], 
    }, 
}, 

]

Grazie

enter image description here

enter image description here)

+0

Invece di pubblicare immagini di testo difficili da leggere, * pubblicare il testo reale * ... insieme con le informazioni necessarie per riprodurre il bug – Sayse

+0

Voglio solo capire perché sto ricevendo eccezione TemplateDoesNotExist anche se il modello esiste sul percorso ? Controlla la seconda immagine quando clicco su "Modelli" su debug-toolbar .. (lato destro) ... Per favore aiutami a capire il problema ... Sono bloccato su questo per molto tempo – user3265443

+0

Dovresti includere qualsiasi parte utile della traccia dall'eccezione. – Jmills

risposta

13

ho avuto il problema simile con Django 1.9. Ho appena modificato il DIRS in MODELLI del file settings.py.

Prova questo

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

Invece di vostro

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

Prova questo codice al posto delle MODELLI

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

ho aggiornato a 1.9 oggi e improvvisamente ha avuto lo stesso problema . Per me sembra che aggiungendo "'APP_DIRS': True," ai template fa il trucco (l'ho attivato alcune volte aggiungendo/eliminando questo e funziona/fallisce).

Quindi cosa fa APP_DIRS: se capisco la documentazione (https://docs.djangoproject.com/en/1.9/ref/templates/api/) legge correttamente i modelli Django predefiniti se True. Fondamentalmente, per il 95% di tutti i progetti questo dovrebbe essere il caso.