2016-11-13 1 views
0

Je commence une application Django très simple mais j'ai du mal à étendre un fichier html.Django TemplateDoesNotExist {% extends base.html%} - où devrait être le template?

J'ai base.html et index.html à la fois dans my_site/my_app/templates/my_app.

, c'est-à-dire my_site/my_app/templates/my_app/base.html et my_site/my_app/templates/my_app/index.html. Dans le fichier index.html, j'ai {% extends 'base.html' %}.

Mon fichier settings.py a

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

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

Mais quand je visite mon avis d'index http://127.0.0.1:8000/index/:

def index(request): 
    return render(request, 'my_app/index.html') 

Je reçois l'erreur suivante:

TemplateDoesNotExist at /index/ 
base.html 
Request Method: GET 
Request URL: http://127.0.0.1:8000/index/ 
Django Version: 1.10.3 
Exception Type: TemplateDoesNotExist 
Exception Value: base.html 

Ai-je le base.html fichier enregistré au mauvais endroit ou est-ce quelque chose autre? Je n'ai pas été capable de résoudre ça.

+0

Comment 'BASE_DIR' est-il défini? – yuvi

+0

Oublié d'ajouter cela, maintenant inclus ci-dessus. 'BASE_DIR = os.path.dirname (os.path.dirname (os.path.abspath (__ fichier __)))' et settings.py est enregistré dans 'my_site/my_site' – James

Répondre

1

Il devrait être dans my_site/my_app/templates ou my_site/templates.

+0

J'ai essayé de le déplacer sur my_site/my_app/modèles mais j'obtiens alors une erreur 'NoReverseMatch at/index /': 'Reverse pour 'index' avec les arguments '()' et les arguments de mot clé '{}' non trouvés. 0 pattern (s) essayé (s): [] ' – James

+0

Eh bien, c'est un problème complètement indépendant, qui n'a rien à voir avec le fait que votre template ne soit pas trouvé. –

+0

Merci - vous avez raison. Je l'ai aussi réparé maintenant pour que tout fonctionne. Vous êtes la réponse fixe ce que je demandais - le modèle est maintenant trouvé. – James