【问题标题】:django form fields are not showing up in template - why?django 表单字段未显示在模板中 - 为什么?
【发布时间】:2013-10-20 06:49:04
【问题描述】:

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

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

【问题讨论】:

    标签: python django forms


    【解决方案1】:

    原因是您要定义一个小部件,它只是 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/

    【讨论】:

    • 谢谢,像魅力一样工作。我收回了我所说的关于文档的内容。他们真的很棒。
    猜你喜欢
    • 2017-12-15
    • 2023-01-10
    • 2011-10-11
    • 2017-05-10
    • 2018-04-07
    • 2015-08-19
    • 1970-01-01
    • 2014-08-12
    • 2011-01-15
    相关资源
    最近更新 更多