Ich versuche, eine Vorlage, die eine ModelForm
auf der Startseite meiner Django-App zeigt. Ich habe eine eigene App in meinem Projekt für die Homepage home
erstellt, da es nicht statisch ist, aber die Vorlage, die ich verwende, lebt im Hauptvorlagen-Verzeichnis, das gerade von meinem Projekt verwendet wird.Django: TemplateDoesNotExist at/home/
Wenn ich meinen Server laufen und versuchen, zu/home zu navigieren, ich folgende Fehlermeldung erhalten:
TemplateDoesNotExist at /home/
{'form': <ActionCodeForm bound=False, valid=Unknown, fields=(action_code)>}
Request Method: GET
Request URL: http://127.0.0.1:8300/home/
Django Version: 1.9.7
Exception Type: TemplateDoesNotExist
Exception Value:
{'form': <ActionCodeForm bound=False, valid=Unknown, fields=(action_code)>}
Wie behebe ich diesen Fehler? Ich habe versucht, andere SO Antworten für TemplateDoesNotExist Fehler zu suchen und sah, dass es mit der 'DIRS'
Einstellung zu tun hat, aber meins scheint korrekt eingerichtet zu sein, so dass ich nicht weiß, was den Fehler verursachen würde.
ist die Vorlagen Abschnitt meines settings.py
:
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',
],
},
},
]
Hier ist die Vorlage (action_code_form.html
):
<form method="post" action="">
{% csrf_token %}
<table>
{{ form }}
</table>
<input type="submit" value="Submit"/>
</form>
ist hier home/views.py:
from home.forms import ActionCodeForm
def action_code_form(request):
form = ActionCodeForm()
if request.method == 'POST':
form = ActionCodeForm(request.POST)
if form.is_valid():
action_code = form.cleaned_data['action_code']
form.save()
return render('action_code_form.html', {'form': form})
Hause /models.py:
class ActionCode(models.Model):
action_code = models.CharField(blank=False, max_length=10,
verbose_name="Action Code")
home/forms.py:
from home.models import ActionCode
class ActionCodeForm(ModelForm):
class Meta:
model = ActionCode
fields = ('action_code',)