栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Django表单声明中设置标签的CSS类?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Django表单声明中设置标签的CSS类?

我发现此片段可能是一个不错的答案:

如何将CSS类和

“ *”
添加到必填字段的标签

这是适应我需要的内容(未经测试,完成后我将对其进行编辑):

from django.utils.html import escapedef readonly_cssclass_adder(bound_field, label_content, label_attrs):    if 'readonly' in bound_field.field.widget.attrs:        if 'class' in attrs: label_attrs['class'] += " readOnly"        else: label_attrs['class'] = "readOnly"    return label_content, label_attrsdef add_required_label_tag(original_function, tweak_foos=None):    if not tweak_foos:        return original_function    def required_label_tag(self, contents=None, attrs=None):        contents = contents or escape(self.label)        if attrs is None: attrs = {}        for foo in tweak_foos: contents, attrs = foo(self, contents, attrs)        return original_function(self, contents, attrs)    return required_label_tagdef decorate_bound_field():    from django.forms.forms import BoundField    BoundField.label_tag = add_required_label_tag(BoundField.label_tag,tweak_foos=[readonly_cssclass_adder])

如果您有一个更好的解决方案,而不需要调整所有的BoundField类,我仍在听。

编辑:可能链接到Django统一方式来处理必填字段,但似乎不调用readonly_cssclass_adder。但是我找到了另一个更简单的解决方案,我的readOnly小部件会自动变为readonly ctrlHolder

此添加是我目前最喜欢的回复:

编辑2:最后我选择的另一种方法是“覆盖”

uni_form/field.html
不调用BoundField.label_tag 的模板。所以我在这里检查了字段状态。

<label for="{{ field.auto_id }}"{% if field.field.required %}   {% else %}{% if field.widget.attrs.readonly %}{% endif %}{% endif %}>    {{ field.label|safe }}{% if field.field.required %}<span >*</span>{% endif %}</label>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号