将odk样式xlsforms转换为django模型和html模板以用于wq的工具(https://wq.io/)

xlsconv的Python项目详细描述


xlsform转换器将通过XLSForm standard定义的测量转换为Django models并 HTML5 Mustache templates。这使得 可以重用 Open Data Kit ecosystem,而 利用Django对关系数据库的强大支持,如 PostgreSQL

XLSForm转换器旨在促进 通过wq framework支持脱机的数据收集应用程序。最终目标是提供 与ODK (and Enketo, etc.)提供的表单创作工具的兼容性。注意,这不是 与完全xform兼容相同:客户机和服务器组件 WQ(wq.appwq.db)使用基于json的REST API来交换数据,而不是 直接与它们的odk类似物(odk collect和odk)兼容 分别为聚合)。

对于数据库本身,与其他xlsform工具的主要区别在于 (包括一些由django供电的)是xlsform转换器 xlsform字段直接进入django模型定义,而不是 表示django中的整个xform标准。这意味着 xlsform“survey”选项卡中的每一行都映射到(通常)单个 简单关系数据库表中的列。重复的问题是 通过创建第二个模型来处理,该模型对父模型使用ForeignKey。 调查模型。

xlsform转换器还支持两个额外的“约束” 不属于XLSForm标准的部分:

  • wq:ForeignKey('app.ModelName'):创建 现有的Django模型(大概没有在电子表格中定义)。 这实际上是 select_one_external
  • wq:initial(3):与repeat_count非常相似,但仅为 新记录。
  • {TT6}$:文本字段最大长度(类似于A) string-length约束)

Latest PyPI ReleaseRelease NotesLicenseGitHub StarsGitHub ForksGitHub Issues

Travis Build StatusPython Support

用法

如果你使用wq,你可能对 wq.start,它使用 xlsconv内部用于wq addformwq maketemplates 命令。否则,可以直接使用xlsconv 命令行api:

# Recommended: create virtual environment
# python3 -m venv venv
# . venv/bin/activate
# Install xlsconv
pip install xlsconv

# Use the default models.py template
xls2django my-odk-survey.xls > myapp/models.py

# Use the rest.py template (or admin.py, or serializers.py)
xls2django my-odk-survey.xls rest > myapp/models.py

# Use a custom template
xls2django my-odk-survey.xls my_templates/models.py > myapp/models.py

# Use the default edit.html template
xls2html my-odk-survey.xls > templates/survey_edit.html

# Use the list.html template (or detail.html, or popup.html)
xls2html my-odk-survey.xls list > templates/survey_list.html

# Use a custom template
xls2html my-odk-survey.xls my_templates/edit.html > templates/survey_edit.html

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是用来加速集合中对象查找的哈希代码吗?   java在Servlet中执行后将JSP请求重定向到自身   JavaHTTPStatus415使用Ajax将Json数据发布到SpringMVC4也使用了SpringSecurity   java为什么谷歌应用引擎MySQL JDBC URL不与数据库连接?   多线程Java:强制停止ExecutorService线程   java使用For循环向组合框添加值   java子Git“内存不足”和“超出GC开销限制”   使用正则表达式运行计算器程序时出现java NumberFormatException   java MockMvc测试POST请求返回错误:实际调用有不同的参数:   java自动在虚拟机内移动鼠标,与真实的鼠标无关   当类位于类路径上时,java Surefire抛出SurefireReflectionException   java GroupLayout错误:找不到错误的行   SpringHibernateJava。lang.NoSuchFieldError:实例   从一个java密钥库生成多个个人证书的身份验证   java 1.6.013中的eclipse@WebServlet注释支持   java Spring Webservicetemplate连接重置错误   spring如何修复SqlRowSet上的“无效游标SQL异常”。Java中的Next()   java Websphere版本迁移