我需要一些方法来将类属性添加到表单字段的 label_tag()
方法的输出中。
我看到有能力传入 attrs
字典,我已经在 shell 中测试了它,我可以做类似的事情:
for field in form:
print field.label_tag(attrs{'class':'Foo'})
我将在我的输出中看到 class='Foo'
,但我看不到从模板中添加 attrs
参数的方法 - 事实上,模板是专门针对它设计的,不是吗?
在我的表单定义中有没有办法定义要在标签中显示的类?
在表单中,我可以执行以下操作来给输入一个类
self.fields['some_field'].widget.attrs['class'] = 'Foo'
我只需要让它也输出 <label />
的类。
原文由 ashchristopher 发布,翻译遵循 CC BY-SA 4.0 许可协议
自定义模板标签 似乎是解决方案。自定义过滤器也可以,尽管它可能不那么优雅。但是在这两种情况下,您都需要回退到自定义表单呈现。
如果这是一项非常重要的任务;我将创建一个 Mixin,它允许我使用标签类注释表单字段并使用这些类提供表单呈现方法。这样下面的代码就可以工作了:
但是我想问一下;你真的需要标签上的类吗?我的意思是 HTML 设计明智。是否绝对有必要在其中 添加 一个类?不能用一些 CSS 来解决,比如:
我有时会在这种情况下使用 jQuery ; _如果有效,它将改进页面,但如果无效,也不会是一场灾难_。并尽可能保持 HTML 源代码精简。