gpt4 book ai didi

django radioselect 渲染到表格

转载 作者:行者123 更新时间:2023-12-03 19:37:48 33 4
gpt4 key购买 nike

我想将 django 表单小部件 radioselect 渲染到一个表而不是一个 ul 列表中。第一行带有标签,第二行带有下面的单选按钮。每个按钮一个单元格。例如

-------------------------------
| label 1 | label 2 | label 3 |
-------------------------------
| O | O | O |
-------------------------------

我查看了默认的 selectradio 小部件,但渲染功能似乎很复杂,需要调用许多不同的类来完成渲染的每个部分。

有没有人有任何关于如何做到这一点的例子或可以提供一个简单的解决方案?

最佳答案

只是为了填写更多 Béres Botond 的回答

class MyForm(forms.ModelForm):
my_field = forms.TypedChoiceField(choices=some_choices,
label=u"bla",
widget=forms.RadioSelect(renderer=MyCustomRenderer))

自定义渲染器看起来像:
from django import forms
from django.forms.widgets import RadioFieldRenderer
from django.utils.encoding import force_unicode
from django.utils.safestring import mark_safe

class MyCustomRenderer( RadioFieldRenderer ):
def render( self ):
"""Outputs a series of <td></td> fields for this set of radio fields."""
return( mark_safe( u''.join( [ u'<td>%s</td>' % force_unicode(w.tag()) for w in self ] )))

在这种情况下,我不想要旁边的单选框的名称,所以我使用“force_unicode(w.tag())”如果你想要旁边的名称,只需直接渲染对象,如“force_unicode( w)"

我希望这有帮助!

关于django radioselect 渲染到表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018586/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com