Django Form 灵活布局的实现(附源码)

用 django form  做表单,在前面写过一篇文章,你可以参考:
Django Form 试用笔记 在这里面主要讲了form 的使用,form 与model的配合使用,form widget的使用,控制CSS样式等方式,form  在模板中的渲染。
在模板中渲染的时候采用了如下方法:
1.  {{form.as_p}} 2.  {{form.as_ul}} 3.  {{form.as_table}}
看字面意思我们应该知道被渲染成HTML的格式。但这样做,都是django自己定义的方式,一行只能显示一个field,如果想现实多个呢,比如多行多列的方式。这时候就需要自定页面布局。其实我们可以把form看作一个dict,既然是dict 就可以在模板页面iterator,也可以单独里面的数据,这样就能实现灵活布局.比如:
程序代码 程序代码

<form method="POST" action="/save_model_contact/">
            {% csrf_token %}
            <table>
                <tr>
                    <td>姓名</td><td>{{form.yourname}}</td>
                    <td>网址</td><td>{{form.website}}</td>
                </tr>
                <tr>
                    <td>Email</td><td>{{form.email}}</td>
                    <td>QQ</td><td>{{form.qq}}</td>
                </tr>
            </table>
            <input type="submit" value="submit"/>
        </form>

循环方式取出所有数据,类似于form.as_table:
程序代码 程序代码

<form method="POST" action="/save_model_contact/">
            {% csrf_token %}
            <table>
                {%for field in form%}
                  <tr><td>{{field.label}}</td><td>{{field}}</td></tr>
                {%endfor%}
            </table>
            <input type="submit" value="submit"/>
        </form>

采用这样的方式,就能实现自己的灵活布局,比如上面的两种方式,在程序运行之后截图如下:


整个工程源码,提供下载, 采用pydev 开发的。
下载文件 点击下载此文件


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 轻舞肥羊 于 2012-11-12 03:22 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: django
相关日志:
评论: 3 | 引用: 0 | 查看次数: -
回复回复哈哈[2016-02-20 04:53 PM | del]
其实学过django的form我也觉得用form类开发表单太墨迹 还不如直接在html里写 在视图里在对数据处理来的清理明了简洁些
回复回复Evient[2015-11-24 08:04 PM | del]
呀  赞  这个方法可以不用那么麻烦的实现form生成的HTML加class。
回复回复奶茶[2012-11-23 04:25 PM | del]
7naicha.com中国奶茶网是中国最大,最彪悍的一个网。关于奶茶加盟的。布局很灵活。
回复来自 轻舞肥羊 的评论 轻舞肥羊 于 2012-11-23 04:54 PM 回复
介个......兄弟是来干嘛的。
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.