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

原因是您正在定义一个小部件,它只是 HTML 输入元素的表示,而不是在您的 forms.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/开发/参考/表单/字段/

于 2013-10-20T07:10:59.473 回答