Django 如何水平渲染models.ManyToManyField复选框小部件?

Django 如何水平渲染models.ManyToManyField复选框小部件?,django,django-models,checkbox,django-forms,django-admin,Django,Django Models,Checkbox,Django Forms,Django Admin,我有一个模型名App_type和SOA class SOA(models.Model): app_type = models.ManyToManyField(App_type, verbose_name='Application Type') 在我的表格里 class SoaForm(forms.ModelForm): app_type = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMu

我有一个模型名App_type和SOA

class SOA(models.Model):
      app_type        = models.ManyToManyField(App_type, verbose_name='Application Type')
在我的表格里

class SoaForm(forms.ModelForm):
    app_type = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple(), 
                                          queryset=App_type.objects.all(), label='Application Type')
    class Meta:
        model = SOA

字段表单在django admin中垂直呈现,占用了太多空间。有没有一种方法可以水平渲染字段形式?任何帮助或参考都将不胜感激。

我已经用Crispy fields完成了。非常简单和有用。 此外,您还可以使用引导工具包。你的生活会更美好

因为这些代码片段在经过一次非常小的调整后确实可以工作

def renderself、name、value、attrs=None、choices=中的原始代码段:

修改为:

for column in columns:
        ...
        str_values = set([force_unicode(v) for v in value])

        output.append(u'<li>')                               ## added

        for i, (option_value, option_label) in column:            
            ...
            option_label = conditional_escape(force_unicode(option_label)) 

            ##<li> & </li> deleted
            output.append(u'<label%s>%s %s</label>' % (  
                    label_for, rendered_cb, option_label))
    ## added </li>
    output.append(u'</li></ul>')

?我尝试以这种方式使用代码段app_type=forms.modelMultipleChiceFieldWidget=ColumnCheckboxSelectMultiple,queryset=app_type.objects.all,label='Application type',但仍然不起作用。我在代码段中更改了两件事以使其起作用,我将在下面解释。这些代码片段在这类问题中非常有用。谢谢Karthikr的链接。很高兴它有帮助。一定要把答案贴出来,以便将来能对社区有所帮助。很抱歉延迟贴。我有一个wifi硬件问题>
for column in columns:
        ...
        str_values = set([force_unicode(v) for v in value])

        output.append(u'<li>')                               ## added

        for i, (option_value, option_label) in column:            
            ...
            option_label = conditional_escape(force_unicode(option_label)) 

            ##<li> & </li> deleted
            output.append(u'<label%s>%s %s</label>' % (  
                    label_for, rendered_cb, option_label))
    ## added </li>
    output.append(u'</li></ul>')