2012-04-19 77 views
3

什么是实现Django ModelForm模型有9个字段,这将被分成模板中的两列最pythonic的方式是什么?事情是这样的:Django两列表格

<form> 
    <div class="column-1"> 
     5 fields for column 1 
    </div> 
    <div class="column-2"> 
     4 fields for column 2 
    </div> 
</form> 

回答

4

我认为最简单,最干净的方法就是坚持要在文档中概述的方法...

<form> 
    <div class="column-1"> 
     {{ form.field1 }} 
     ... 
     {{ form.field5 }}  
    </div> 
    <div class="column-2"> 
     {{ form.field6 }} 
     ... 
     {{ form.field9 }} 
     </div> 
</form> 
+3

这样我需要将字段硬编码到模板中,感觉不对。 – Shark 2012-04-19 16:47:12

+1

当然。你的模板如何呈现表单的字段与表单背后的Python代码无关。 https://docs.djangoproject.com/zh/dev/topics/forms/?from=olddocs#customizing-the-form-template – 2012-04-19 16:48:20

+2

@Shark:这甚至不是“错误的”。如果Django没有像'as_ul'或'as_p'那样为你提供方便的方法,那么你将不得不这样做。诚然,通过逐个渲染字段,您会失去一点抽象,但这是希望以不同方式显示*的价格。 – 2012-04-19 16:51:20

1

您可以使用carljm的django-form-utils它允许您定义字段集。您可以根据需要为每个字段集指定一个类。不过,您仍然必须在表单定义中列出所有的字段。

+0

脆皮形式也值得一看。 – 2014-01-17 09:35:53