我正在尝试检查窗口小部件的输入类型:
for field in form:
if field.field.widget.input_type == 'checkbox':
do_smth()
else:
do_smth_else()
但似乎django textarea窗口小部件没有属性" input_type"。
我已经通过包装input_type intry/try/drave/dif block解决了问题:
:try:
input_type = field.field.widget.input_type
except AttributeError:
input_type = 'textarea'
但是我有2个问题:
1)为什么只有这个小部件没有" input_type",而其他小部件则具有?
2)是否有更好的方法来解决上述问题?
我很抱歉我的英语,谢谢您的进步!
这不是一个真正的答案,无论如何都不是一个满足的答案:https://code.djangoproject.com/ticket/30306
简而言之:"我们不添加它"。
我的方法。确保序列如图所示,否则您会遇到错误...
from django.forms.widgets import Textarea
if isinstance(field.widget, Textarea) or field.widget.input_type == 'text':