2016-09-23 2 views
1

Python 2.7 & Django 1.10 meine Vorlage existiert, aber ich Somesing falsch!TemplateDoesNotExist aber es existiert

TemplateDoesNotExist at /basicview/2/ 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>TEST</title> 
</head> 
<body> 
This is template_two view! 
</body> 
</html> 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/basicview/2/ 
Django Version:  1.10.1 
Exception Type:  TemplateDoesNotExist 
Exception Value:  

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>TEST</title> 
</head> 
<body> 
This is template_two view! 
</body> 
</html> 

Exception Location:  /home/i/djangoenv/local/lib/python2.7/site-packages/Django-1.10.1-py2.7.egg/django/template/loader.py in get_template, line 25 
Python Executable: /home/i/djangoenv/bin/python 
Python Version:  2.7.11 
Python Path:  

['/home/i/djangoenv/bin/firstapp', 
'/home/i/djangoenv/lib/python2.7', 
'/home/i/djangoenv/lib/python2.7/plat-i386-linux-gnu', 
'/home/i/djangoenv/lib/python2.7/lib-tk', 
'/home/i/djangoenv/lib/python2.7/lib-old', 
'/home/i/djangoenv/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-i386-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/home/i/djangoenv/local/lib/python2.7/site-packages', 
'/home/i/djangoenv/local/lib/python2.7/site-packages/Django-1.10.1-py2.7.egg', 
'/home/i/djangoenv/lib/python2.7/site-packages', 
'/home/i/djangoenv/lib/python2.7/site-packages/Django-1.10.1-py2.7.egg'] 

Server time: Пт, 23 Сен 2016 15:43:30 +0000 

settings.py (os.path.join (BASE_DIR), 'Vorlagen' oder/home/MainApp/templates) nicht funktioniert ..

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': ['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', 
      ], 
     }, 
    }, 

Artikel/Ansichten. py meine def wie folgt aussieht:

def template_two(request): 
    view = "template_two" 
    t = get_template('myview.html') 
    html = t.render(Context({'name': view})) 
    return render(request, html, {}) 

Meine Datei:

mainapp/mainapp/settings.py 
mainapp/mainapp/article/views.py 
mainapp/templates/myview.html 

Antwort

1

Das Problem ist, dass Sie manuell Ihre Vorlage rendern und mit der render Verknüpfung zur gleichen Zeit. Ihr get_template funktioniert, aber wenn Sie render(request, html, {}) aufrufen, behandelt Django html als den Dateinamen und sucht nach einer Vorlagedatei mit Name <!DOCTYPE html>\n<html>....

sollten Sie entweder machen die Vorlage manuell:

def template_two(request): 
    view = "template_two" 
    t = get_template('myview.html') 
    html = t.render({'name': view}) # Note you should use a plain dictionary, not `Context` on Django 1.8+ 
    return HttpResponse(html) 

Alternativ ist es einfacher, die render Abkürzung zu verwenden.

def template_two(request): 
    view = "template_two" 
    return render(request, "myview.html", {'name': view}) 

Sie sollten auch Ihre DIRS Einstellung ändern zurück os.path.join(BASE_DIR, 'templates') zu verwenden. Die Verwendung der Zeichenfolge 'templates' wird nicht funktionieren.

+0

es Ihnen danken! Es hilft mir! – KingOfPing

1

In Ihrem settings.py Sie haben 'DIRS': ['templates'],

Und Pfad zu Ihrer Vorlage ist mainapp/templetes/myview.html

Sie Typo templetes != templates haben. Benennen Sie den Ordner mit Vorlagen in templates um.

+0

gleichen Fehler: TemplateDoesNotExist bei/Basicview/2/ myview.html – KingOfPing

2

Ich würde vorschlagen, dass Sie Ihre Vorlagen in Ihre App legen.

Ihre Datei wird dann hier sein:

mainapp/mainapp/templates/myview.html 

Bitte stellen Sie sicher, dass Sie mainapp zu Ihrem INSTALLED_APPS wie folgt hinzu:

INSTALLED_APPS = [ 
    ... 
    'mainapp', 
] 
+0

nicht meine Vorlagen in MainApp ist nicht in MainApp/MainApp – KingOfPing

Verwandte Themen