繁体   English   中英

django表单字段未显示在模板中-为什么?

[英]django form fields are not showing up in template - why?

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

<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,我也必须这样做吗?

原因是您要定义一个小部件,而该小部件只是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/dev/ref/forms/fields/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM