我在我的一个表单中使用了模型选择字段,我想根据模型属性的值为每个选项添加一个CSS类。
有一种简单的方法吗?
任何建议表示赞赏。
感谢。
答案 0 :(得分:2)
两个选项:
您必须自己在模板中渲染选择,迭代{{form.field_name.choices}}并生成类。
创建一个自定义Widget,扩展django.forms.widgets.Select并覆盖它的render_option()方法。例如,它是如何实现的,请参阅render_option() in django's source。使用表单中的小部件(作为字段的小部件)。
你可以在django片段中看到另一个类似的例子(在这种情况下是禁用的选项):Allow disabling options in a select widget。
IMO第二个选项更清晰:它可重复使用,无需弄乱模板。