我有一个型号名称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中垂直渲染,占用太多空间。有没有办法以水平方式渲染字段?任何帮助或参考将不胜感激。
答案 0 :(得分:0)
我使用Crispy字段完成了它。非常简单实用。 另外,您可以使用Bootstrap工具包。而你的生活将更容易。
http://django-crispy-forms.readthedocs.org/en/1.1.1/tags.html
答案 1 :(得分:0)
作为karthikr pointed out,片段在经过超级小调整后确实有效。
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>')