2

ドキュメントによると、フォーム フィールドをテンプレートに表示するには、次のようにする必要があります。

<form action="/search_for_book/">{% csrf_token %}
   {{form.as_p}}
   <input type="submit" value="Suchen" />
</form>

これは私がしました。これが私の見解です。

def addbook(request):
   form = AddBook()
   return render(request,'searchbook.html',{'form':form})

これが私のフォームです。forms.py で定義され、views.py にインポートされます

class AddBook(forms.Form):
   titel = forms.TextInput()
   author = forms.TextInput()

フォーム フィールドがテンプレートに表示されないのはなぜですか? ドキュメントからほぼ 1:1 のコピーを作成しました。テンプレートにはボタンのみが表示され、他には何も表示Suchenされません。Docs は Urlconf について何も述べていません。

4

1 に答える 1

5

その理由は、forms.py でフィールドを定義するのではなく、単に HTML 入力要素の表現であるウィジェットを定義しているためです。

次の手順を実行します。

class AddBook(forms.Form):
    titel = forms.CharField(widget=forms.TextInput())
    author = forms.CharField(widget=forms.TextInput())

PS: django のドキュメントを責めないでください - それらは本当に優れています!

ウィジェットのリファレンスについては、こちらをお読みください: https://docs.djangoproject.com/en/dev/ref/forms/widgets/
フィールドのリファレンスについては、こちらをお読みください: https://docs.djangoproject.com/en/開発/参照/フォーム/フィールド/

于 2013-10-20T07:10:59.473 に答える