【问题标题】:django forms blank labeldjango 表单空白标签
【发布时间】:2012-03-02 13:26:02
【问题描述】:

我正在尝试使用 django 表单,并且我有兴趣渲染带有“空白标签”的表单。

类似:

class SearchForm(forms.Form):
     q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}),label="Search")

然后我使用 html 在我的 html 中呈现表单

{{form.as_p}}

但是,我的 html 上显示了这个烦人的“搜索:”,这是我不想要的。我试过只使用:

q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}))

但这会输出“Q:”,我猜这是默认标签。如何告诉 django 我不需要渲染标签?

非常感谢。

【问题讨论】:

  • 好的,我找到了答案。最好在 html 字段中直接将名称“q”作为名称传递。
  • 也可以逐个字段渲染表单,省略label标签。
  • szaman 是什么意思?例如,我使用了:。更好的是使用 django 特定代码:类似 {{form.q}} 而不是 name="q" 我想知道这是否可能。我尝试了 {{form.q}}、{{form.data.q}} 等,但它们都不起作用。

标签: django django-forms


【解决方案1】:

看看这个例子,它应该阐明如何使用它:https://docs.djangoproject.com/en/dev/topics/forms/#customizing-the-form-template

您确定 {{ form.q }} 不起作用吗?

【讨论】:

  • Szaman.. 是的,我看过文档。由于某种原因 {{form.q}} 不起作用。值得一提的是,这种形式其实是大海捞针。因此,当我称它为“q”时,它似乎有效,但 {{form.q}} 无效。奇怪。
  • Szaman,实际上,{{form.q}} 现在可以工作了。我不得不重新加载所有模块。但是,比如我不喜欢 {{form.q}} 输入框的样式,有自己的输入框,比如: .在这里,我使用 name=q 并且一切都按预期工作。如果我使用 name="{{forms.q}}" 它不起作用。在这种情况下使用 name=q 正常吗?谢谢。
  • 你手动输入的输入标签和django使用form.q渲染的这个有什么区别?您可以根据需要调整每个表单字段,而不必手动输入输入标签。
【解决方案2】:

你可以这样做:

class SearchForm(forms.Form):
     q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}),label="")

这只会将标签设置为空字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2021-12-11
    相关资源
    最近更新 更多