Django选择多个窗口小部件
我有一些选项组,比如:Django选择多个窗口小部件,django,django-forms,Django,Django Forms,我有一些选项组,比如: Choices = (('Group1',(('Option1','Option1'),('Option2','Option2')))) 是否仍然可以使用SelectMultiple小部件水平显示选项而不是垂直显示选项?我的问题是我有太多的小组,所以如果我能有下面这样的小组就更好了 Group 1 - Option1, Option2, ... Group 2 - Option1, Option2, ... 更新-找到此项,但它仅适用于复选框SelectMultipl
Choices = (('Group1',(('Option1','Option1'),('Option2','Option2'))))
是否仍然可以使用SelectMultiple小部件水平显示选项而不是垂直显示选项?我的问题是我有太多的小组,所以如果我能有下面这样的小组就更好了
Group 1 - Option1, Option2, ...
Group 2 - Option1, Option2, ...
更新-找到此项,但它仅适用于复选框SelectMultiple。我应该如何更改它才能使用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>'))
你在使用Django管理员吗?如果是这样的话,和选项可以使多个选择更加有用,我必须承认,我以前从未用分组选择尝试过它们
如果这没有帮助,那么您可以将SelectMultiple小部件子类化,并根据需要覆盖呈现方法。我个人更喜欢在可能的情况下使用javascript小部件插件,例如。它们通常只需在模板标题中使用几行javascript即可工作,我发现这比编写自定义小部件html要轻松得多。晚会晚了,但可能对某些人还是有帮助的:
Form(forms.Form):
selection = forms.ModelMultipleChoiceField(queryset=models.MyModel.objects.all(),
widget=widgets.FilteredSelectMultiple('', False))
是的,我用的是Django管理员。我想我会尝试覆盖SelectMultiple小部件。我还是Django的新手…发现了这个,但它只适用于CheckboxSelectMultiple。我应该如何更改它才能使用SelectMultiple?类HorizWidgetforms.SelectMultiple:def renderself,*args,**kwargs:output=superHorizWidget,self.render*args,**kwargs返回mark_safeoutput.replaceu,u.replaceu,u.replaceu,u''。replaceu。您可以编辑原始问题以包含代码。很抱歉,我无法帮助您编写自定义小部件,我希望有人可以帮助您或您可以解决它。祝你好运需要一个来自django.contrib.admin的导入小部件,因为这是一个仅限管理员的WidgetWidget。请看一看@