我正在遍历表单字段列表。如何识别每个字段的类型?对于复选框,我可以调用 field.is_checkbox ...列表、多项选择字段等是否有类似的方法?
谢谢
我正在遍历表单字段列表。如何识别每个字段的类型?对于复选框,我可以调用 field.is_checkbox ...列表、多项选择字段等是否有类似的方法?
谢谢
查看表单上每个字段的类:
for f_name, f_type in my_form_instance.fields.items():
print "I am a ",type(f_type)
# or f_type.__class__
这将产生类似于 的输出<class 'django.forms.fields.BooleanField'>
。
如果您愿意,可以将名称作为简单的字符串获取,使用:
print type(f_type).__name__
# produces 'BooleanField'
编辑:还要注意字段和小部件之间的区别。Django 中没有 Checkbox 字段,只有 CheckboxInput 小部件,这是 BooleanField 的默认值。您是要查找小部件(非常特定于渲染)还是字段(与该表单字段的数据类型和验证有更多关系)?如果是小部件,您可以使用以下方法获取小部件类型:
f_type.widget
希望有帮助!
我不确定这是否是您想要的,但如果您想知道它最终会出现在 HTML 中的字段类型,您可以通过以下方式进行检查:
{% for field in form %}
{{ field.field.widget.input_type }}
{% endfor %}
widget.input_type 将保存文本、密码、选择等。
PS我直到5秒前才知道这一点。#django irc.freenode.net 总是有很好的帮助。
假设您在这里使用 HTML ......因为它不是很清楚。
给它一个额外的课程怎么样。
如果你还不知道,class 属性会识别这一点:
class="hello there you"
因为有 3 节课。“你好”类、“那里”类和“你”类。因此,如果他们已经有一个类,只需添加一个空格和您的自定义类名。