[英]How can I hide a django label in a custom django form?
我有一个自定义表单,用于创建字段的隐藏输入:
class MPForm( forms.ModelForm ):
def __init__( self, *args, **kwargs ):
super(MPForm, self).__init__( *args, **kwargs )
self.fields['mp_e'].label = "" #the trick :)
class Meta:
model = MeasurementPoint
widgets = { 'mp_e': forms.HiddenInput() }
exclude = ('mp_order')
我必须做这个小技巧来“隐藏”标签,但我想要做的是将它从表单中删除。 我创建这样的表单:
forms.MPForm()
我不建议删除标签,因为它会使表单无法访问。 您可以向该字段添加自定义 CSS 类,并在您的 CSS中使该类不可见。
编辑
我错过了输入是隐藏的,因此可访问性不是问题。
您可以直接在模板中呈现表单字段:
<form ...>
{% for field in form.hidden_fields %}
{{ field }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.label }} {{ field }}
{% endfor %}
</form>
现在,(我的django版本是2.1.4),可以这样解决->编辑forms.py文件:
password = forms.CharField(label=False)
如果您使用form.as_p
或form.as_table
方法,Django 无论如何都不应该显示隐藏字段的标签,因此无需更改__init__
方法中的标签。
{{ form.as_table }}
如果您正在自定义表单模板,您可以使用field.is_hidden
属性来检查该字段是否隐藏。
{% if field.is_hidden %}
{# Don't render label #}
{% endif %}
或者,您可以分别遍历隐藏字段和可见字段,并省略隐藏字段的标签。
你需要给 False ,它会起作用:
self.fields['mp_e'].label = False
Django 版本:2.2
我发现这很有用,对我有用!
class CustomForm(forms.Form):
class Meta:
... #other properties such as model, fields, widgets and help text
labels = {
'comment' : '',
}
除非我误解了您的问题,否则您只需将 mp_e 字段添加到元类下的排除元组中。 这不是你需要的吗?
class MPForm( forms.ModelForm ):
def __init__( self, *args, **kwargs ):
super(MPForm, self).__init__( *args, **kwargs )
class Meta:
model = MeasurementPoint
exclude = ('mp_order','mp_e')
转到您的 forms.py 文件并添加 label = false
如下
name = forms.CharField(required=True, max_length=100, widget=forms.TextInput(attrs={'placeholder': 'Enter Name *'}), label=False)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.