django表单字段没有出现在模板中 - 为什么?

时间:2013-10-20 06:49:04

标签: python django forms

文档说,要在模板中显示表单字段,我需要这样做:

<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没有任何说法,我还必须做吗?

1 个答案:

答案 0 :(得分:4)

原因是你要定义一个小部件,它只是一个HTML输入元素的表示,而不是在你的form.py中定义一个字段。 请执行以下操作:

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/dev/ref/forms/fields/