1

モデル名 App_type と SOA があります。

class SOA(models.Model):
      app_type        = models.ManyToManyField(App_type, verbose_name='Application Type')

私のforms.pyで

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 で垂直にレンダリングされ、スペースを消費しすぎます。フィールドフォームを水平にレンダリングする方法はありますか? ヘルプやリファレンスをいただければ幸いです。

4

2 に答える 2

0

クリスピーフィールドを使用してそれを行いました。非常にシンプルで便利です。さらに、Bootstrap ツールキットを使用できます。そして、あなたの人生はより快適になります。

http://django-crispy-forms.readthedocs.org/en/1.1.1/tags.html

于 2013-07-16T15:30:26.633 に答える
0

karthikrが指摘したように、スニペットは非常にマイナーな調整の後で実際に機能します。

内の元のスニペットdef render(self, name, value, attrs=None, choices=())::

   for column in columns:
        ...
        str_values = set([force_unicode(v) for v in value])
        for i, (option_value, option_label) in column:
            ...
            option_label = conditional_escape(force_unicode(option_label))
            output.append(u'<li><label%s>%s %s</label></li>' % (
                    label_for, rendered_cb, option_label))
        output.append(u'</ul>')
    return mark_safe(u'\n'.join(output))

これに変更:

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>')
于 2013-08-28T04:33:36.240 に答える