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
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
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
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