Autoforms使用指南

Autoforms是Jeff开源的一个基于Django的自定义表单引擎,可用于调查、投票、信息收集甚至是整合至工作流程引擎和PAAS平台当中。目前AutoForms主要用于支持珠三角地区几个技术社区的线下活动报名、反馈收集等。jeff在本站上也搭建了一个autoforms的实例,可以免费为大家提供简单的在线表单服务,有兴趣者,可联系我开通帐号。最近对AutoForms的使用反馈越来越多,所以更新会相对频繁一些,嗯,有人使用就有动力呀!

AutoForms(今天下午发布最新版本为0.4)的主要特性:

  • 支持14种字段类型13种html输入控件(包括日期选择组件),可以快速定制大部份常见的表单。
  • 保存用户提交的表单数据,并向表单作者展示,同时提供数据导出功能。
  • 支持表单继承,需要周期性地使用相同的表单时,一点也不费力。
  • 用户填写表单后,邮件通知表单作者。
  • 提供了丰富的API,容易与其他应用程序作整合。

关于AutoForms的安装请参考github上面的说明,本文主要的内容是指导表单用户如何使用Autoforms。

登录

首先登录至管理界面(http://f.jeffkit.info/admin/ 帐号为 form/form),会看到Autoforms的应用,该应用有两个模型可供管理:

  1. 表单管理提供快速创建、修改表单;预览表单,查看表单数据以及生成某入式表单代表等功能。
  2. 表单域管理则提供对某些表单域的高级设置功能。

创建表单

下面我通过创建一个“AutoForm用户反馈表单”为例,示范一下如何使用AutoForms来创建表单。

首先,我们点击表单管理的增加按钮开始,打开增加表单的页面,表单上半部份是表单的基本信息,下半部分是定义该表单所包括的字段(表单域)。下图是填写AutoForm用户反馈表单的示例数据:

补充说明一下上面页面一些容易迷惑的地方:

父表单:如果指定某个表单为父表单,那么所创建的表单将自动获得父表单的所有字段。

启用:如果处于勾选状态,则表单可供填写,否则表单只能查看而不能提交。

表单域里的组件:组件是指在页面上展示表单时使用的HTML控件,如你的字段是密码类的,你最好选择“密码输入框”组件。一般情况下,使用默认的组件已经足够。

接下来,点击”保存并继续编辑”按钮,这时在页面的面上角出现了一些快捷按钮:

  1. 预览,让您预览所创建的表单的展示效果。
  2. 数据,用户通过表单提交数据后,表单作者可以在此看到所有提交的数据并可将数据导出为CSV格式。
  3. 嵌入,autoforms允许用户通过嵌入页面的方式展现在第三方网站上面,点击该按钮可获得嵌入的HTML代码。
  4. 历史,Django的内置的数据为更记录。
  5. 在网站上查看,点击后打开填写表单页面。

预览表单

我们先点击预览按钮,看看刚才创建的表单的效果如何!结果有点意外,“评分”和“在哪了解到autoforms”两个字段光秃秃的!

其实并不意外,我们在表单是创建了两个选项/多选值类型的字段,而我们还没有为这两个字段提供选项数据,所以它们看上去是光秃秃的,那么下一步,我们就是要为选项类型的字段加上选项数据。

编辑字段

返回管理首页,点击表单域进入表单域列表页面,在这里可以找到刚在才创建表单时生成的几个字段,点击“在哪了解到autoforms”进入该字段的编辑页面,页面由一个展开区域和(字段基础信息),三个隐藏区域(高级设置、选项、错误信息)组成。高级设置暂略过不理,选项区就是我们要为选项类型的字段提供数据的地方,而错误信息则允许我们自定议错误提示内容。

下面我要为“在哪了解到autoforms”字段提供一些选项数据,如下图这般添加一些数据:

保存字段的修改,再依法泡制一下“评分”字段,一个表单就完成了。最终结果就是下面的表单了,各位使用过autoforms的同学,来这里给我一些建议吧。

收集数据

表单定义好了,是时候发出去给大家填写了,收集上一段时间后,可以通过“数据”页面来查看已经收集好的数据,如果你愿意,可以点击右上角的导出按钮,以CVS的格式导出数据:

好了,AutoForms的基本使用就这么一些,如果你是开发人员,对API感兴趣,欢迎阅读代码,如果你有些空闲时间,希望掺和一些开源项目,AutoForms也欢迎你加入到开发者行列。

This entry was posted in 技术 and tagged , , , . Bookmark the permalink.

7 Responses to Autoforms使用指南

  1. 沈觅仁 says:

    赞!

    刚好我也在做一些django表单相关的工作,面临一个问题,希望能探讨一下:如何让django的form支持二维的表格?例如一个人可以添加无数个email地址/电话号码等。

    简单看了一下autoform的代码,似乎没有这方面的支持?

    • jeff says:

      暂时还没有支持,以后需要支持的方式还有:
      - 让用户可以一次过提交N个相同的表单,最常见于费用报销的场景。

  2. sarlmolapple says:

    使用的是django admin自带的css?

  3. ledlight says:

    头晕。。。。小小LED灯站长刚刚开始学习ASP。。。向各位前辈学习。

  4. wrongway says:

    帮我节省的时间和浪费我的时间同等多,赞美的话不多说,只说不足
    1.模板没有打包发布
    2.翻译文件没有打包发布
    3.文档没有,只有这篇博文

  5. sztmail.com says:

    博主写得不错,真有才!我要支持你,有机会也多多看看我的漫画博客,里面有很多好看的哦,我在这里期待大家的到来。请不要吝啬你们的脚步吧!www.sztmail.com

发布评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>