我有选项组,有些像这样:
Choices = (('Group1',(('Option1','Option1'),('Option2','Option2'))))
是否有水平显示选项而不是垂直使用SelectMultiple
小部件?我的问题是我有太多的群组,所以如果我能得到类似下面的东西那就更好了。
Group 1 - Option1, Option2, ...
Group 2 - Option1, Option2, ...
更新 - 找到了这个,但它只是"工作"对于CheckboxSelectMultiple。我应该如何更改它才能使用SelectMultiple?
from django.utils.safestring import mark_safe
class HorizWidget(forms.SelectMultiple):
def render(self, *args, **kwargs):
output = super(HorizWidget, self).render(*args,**kwargs)
return mark_safe(output.replace(u'<ul>', u'').replace(u'</ul>', u'').replace(u'<li>', u'<p>').replace(u'</li>', u'</p>'))
答案 0 :(得分:2)
您使用的是Django管理员吗?如果是这样,filter_horizontal
和filter_vertical
选项可以使多个选项更有用(我必须承认,我之前没有尝试使用分组选项)。
如果这没有帮助,那么您可以继承SelectMultiple
窗口小部件并根据需要覆盖render
方法。我个人更喜欢尽可能使用javascript小部件插件(例如jquery-ui-multiselect)。他们通常可以在模板标题中使用几行javascript,我发现这比编写自定义小部件html要痛苦得多。
答案 1 :(得分:0)
迟到聚会,但可能仍对某人有帮助:
<iframe id="mainwindow" name="mainwindow" style="top: 54px; height: 849px;"
src="/h2/welcomeAction.do?misc=1582634309181" frameborder="0"></iframe>