所以我的情况是,我正在开发一个像应用程序一样的表单构建器,需要为所有用户定制。表单托管并在数据库中收集响应。现在在数据库等mysql中执行相同操作的正确方法是什么。
例如,假设有两个表单,一个带有文本字段,另一个带有单选按钮和文本字段。此外,一旦创建该模型,有任何方法可以使用django表单,或者我必须采取其他方式。
答案 0 :(得分:1)
最近mysql引入了JSON fields。
从MySQL 5.7.8开始,MySQL支持启用的本机JSON数据类型 JSON中有效访问数据(JavaScript Object Notation) 文档。 JSON数据类型提供了优于存储的这些优点 字符串列中的JSON格式字符串:
即使您没有最新版本的mysql,仍然可以将JSON数据保存在varchar字段中,并且是很多third party libraries支持的为Django提供JSON支持的流行解决方案。
需要第三方库的原因是因为Django没有内置的JSONField。最近为Postgresql添加了一个,但mysql仍然落后。
不涉及mysql的替代方法是使用redis。 Django对redis有很好的支持,因为你知道redis哈希与python词典非常相似。与mysql json字段一样,ORM支持需要第三方库。然而,将redis视为python字典更简单,可以跨会话持久化并快速查询。最后但并非最不重要的是哈希只是冰山一角。