ModelForm
をDjangoアプリケーションのホームページに表示するテンプレートを追加しようとしています。私はhome
という名前のホームページのために私のプロジェクト内で独立したアプリケーションを作りました。スタティックではありませんが、私が使用しているテンプレートは今私のプロジェクトで使用されているメインのテンプレートディレクトリにあります。Django:TemplateDoesNotExist at/home/
私は自分のサーバーを実行し、/ホームに移動しようと、私は次のエラーを取得する:
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)>}
は、どのように私はこのエラーを修正しますか?私はTemplateDoesNotExistエラーのために他のSOの答えを見てみましたが、それは'DIRS'
の設定と関係がありますが、私の設定は正しく設定されているようですので、何が原因でエラーになるのか分かりません。ここで
は私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',
],
},
},
]
はここでテンプレート(action_code_form.html
)です:
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})
家:ここ
<form method="post" action="">
{% csrf_token %}
<table>
{{ form }}
</table>
<input type="submit" value="Submit"/>
</form>
はホーム/ views.pyです/models.py:
class ActionCode(models.Model):
action_code = models.CharField(blank=False, max_length=10,
verbose_name="Action Code")
ホーム/ forms.py:
from home.models import ActionCode
class ActionCodeForm(ModelForm):
class Meta:
model = ActionCode
fields = ('action_code',)