自定义 radioselect 默认渲染器

Posted

技术标签:

【中文标题】自定义 radioselect 默认渲染器【英文标题】:Customize radioselect default renderer 【发布时间】:2011-05-25 19:54:03 【问题描述】:

我有以下带有单选选项的表单:

jobStatus = forms.ChoiceField( widget=forms.Radioselect())

但是,它会在<ul> <li> .. </li></ul> 标记中呈现单选按钮。

你能建议我用什么方法来呈现唯一的单选按钮输入吗?

谢谢

【问题讨论】:

【参考方案1】:

这是一个很好的方法来覆盖单选小部件的渲染器。

https://wikis.utexas.edu/display/~bm6432/Django-Modifying+RadioSelect+Widget+to+have+horizontal+buttons

基本上,创建一个继承自 forms.RadioFieldRenderer 类的类并覆盖 render 方法。然后在您的表单中设置小部件时使用 renderer 参数将渲染器设置为您的自定义渲染器类。

话虽如此,我通常只是使用 CSS 更改外观

【讨论】:

完美,谢谢!这种自定义渲染器应该在项目树中是否有任何一般约定? 我认为这取决于您是否打算以其他形式重用渲染器。如果不是,我会将它放在与表单相同的 forms.py 文件中,否则与您的“util”或“misc”sn-ps 的其余部分一起并从那里导入。

以上是关于自定义 radioselect 默认渲染器的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms MasterDetailPage 自定义渲染器

自定义渲染器未应用于 Table 渲染 handsontable

MvvmCross 与 Xamarin.Forms 和自定义 iOS 渲染器 - 防止导航滑动 iOS - MasterDetail

ruby will_paginate(3.0.7)自定义渲染器。注释掉的代码是此版本gem的默认代码。使用`super`作为写的贝尔

[浅析] vue3.0中的自定义渲染器

[浅析] vue3.0中的自定义渲染器