2017-09-28 4 views
1

Ich versuche, eine Django-App für ein Projekt einzurichten, aber ich habe Probleme mit dem gefundenen Vorlagenordner. Hier ist mein Layout ...Django findet keine Vorlagen

-Alexa 
    -Alexa 
     -__init__.py 
     -settings.py 
     -urls.py 
     -wsgi.py 
    -AlexaApp 
     -migrations 
     -static 
     -css 
     -js 
     -templates 
     -login.html 
     -__init__.py 
     -admin.py 
     -apps.py 
     -models.py 
     -tests.py 
     -views.py 
    -manage.py 

settings.py

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

INSTALLED_APPS = [ 
    'Alexa', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

ROOT_URLCONF = 'Alexa.urls' 

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

urls.py

from django.conf.urls import url 
from django.contrib import admin 
from django.contrib.auth import views as auth_views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^login/', auth_views.login, {'template_name': 'templates/login.html'}), 
    url(r'^logout/', auth_views.logout), 
] 

Ich habe versucht os.path.join(BASE_DIR, 'templates') meiner VORLAGEN DIRS Zugabe, aber das tat es nicht Hilfe. Ich habe auch versucht, meine INSTALLED_APPS 'Alexa' und 'AlexaApp' hinzuzufügen. Ich habe auch versucht, den 'templates/login.html' zu einem direkten Weg den Vorlagenordner ohne Erfolg zu ändern. Ich bin mir sicher, dass es etwas Einfaches ist, aber ich bin mir nicht sicher, wo ich versaut habe. Ich benutze Django 1.11.5. Kann mir jemand helfen?

Vielen Dank im Voraus!
Dylan

+0

Würde ein Hauch mehr Informationen benötigen. Worauf setzt sich Ihr BASE_DIR? Meine Vermutung ist, dass es in Ihrem Root-Verzeichnis "Alexa" ist, was bedeutet, dass Django in \ Alexa \ Templates suchen würde, die nicht existieren. Oder es könnte zu \ Alexa \ Alexa aufgelöst werden, was bedeutet, dass es nach Vorlagen suchen würde. – MikeTheReader

+0

Ah! Ich habe diesen Teil verpasst, als ich kopiert und eingefügt habe. Ich habe die Frage nur aktualisiert! Im Moment ist es gesetzt auf 'BASE_DIR = os.path.dirname (os.path.dirname (os.path.abspath (__ file __)))' '. Ich habe auch meinen Templates-Ordner nach '\ Alexa \ Alexa \ templates \' verschoben, aber er würde es immer noch nicht aufnehmen. – DForsyth

+0

Also verwendet Ihr BASE_DIR die Datei settings.py als das Argument '__file__', was bedeutet, dass der verschachtelte dirname/dirname Ihr Stammverzeichnis 'Alexa' zurückgibt. Probieren Sie '\ Alexa \ templates' aus und dann wäre Ihr Login 'template_name' einfach login.html. – MikeTheReader

Antwort

1

Sie müssen AlexaApp-installed_apps für django setzen für Vorlagen innerhalb AlexaApp/templates/ zu suchen. Siehe docs.

zugreifen Dann Vorlage wie folgt aus:

'template_name': 'login.html'