我想水平對齊單選按鈕。默認情況下,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