我想水平对齐单选按钮。默认情况下,django表单以垂直格式显示。
feature_type = forms.TypedChoiceField(choices = formfields.FeatureType, widget = forms.RadioSelect)
是否有任何特殊参数可以通过单选按钮对齐?
在此先感谢
我想水平对齐单选按钮。默认情况下,django表单以垂直格式显示。
feature_type = forms.TypedChoiceField(choices = formfields.FeatureType, widget = forms.RadioSelect)
是否有任何特殊参数可以通过单选按钮对齐?
在此先感谢
多数民众赞成在RadioField
的行为。如果你想让它呈现水平,创建水平渲染器,喜欢的东西如下:
from django.utils.safestring import mark_safe
class HorizontalRadioRenderer(forms.RadioSelect.renderer):
def render(self):
return mark_safe(u'\n'.join([u'%s\n' % w for w in self]))
class ApprovalForm(forms.Form):
approval = forms.ChoiceField(choices=APPROVAL_CHOICES,
initial=0,
widget=forms.RadioSelect(renderer=HorizontalRadioRenderer),
)
修改forms.RadioSelect:
class HorizontalRadioSelect(forms.RadioSelect):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
css_style = 'style="display: inline-block; margin-right: 10px;"'
self.renderer.inner_html = '<li ' + css_style + '>{choice_value}{sub_widgets}</li>'
与Python的3.4与工作的非标准的管理Django的1.10
和Django的套装(http://djangosuit.com/)(它使用Bootstrap`s 2款)
尚未测试Django-grappelli。
根据the Django docs“ATTRS”是含有HTML属性要对所渲染的外集件组的字典。
考虑到这一点简单的基于表单解决方案是类似以下内容:
feature_type = forms.TypedChoiceField(
choices = formfields.FeatureType,
widget = forms.RadioSelect(attrs={
'display': 'inline-block'
})
)
我觉得这是比Django的一个CSS问题。你也许可以添加一个类到单选按钮,并说float:left;在你的CSS单选按钮类。 – 2011-05-09 10:36:48
我用Google搜索了一下,发现有一个链接无法工作。 https://wikis.utexas.edu/display/~bm6432/Django-Modifying+RadioSelect+Widget+to+have+horizontal+buttons。我会尝试添加CSS,并会告诉你它是否修复。谢谢geekam – vkrams 2011-05-09 11:01:35