【问题标题】:Create Django Survey Forms from Frontend从前端创建 Django 调查表
【发布时间】:2017-07-26 14:31:38
【问题描述】:

我正在开发类似应用程序的 GoogleSurvey 表单,我需要让前端用户构建调查。我需要一点指导来开始。我需要的是构建一个可以生成像 Django-admin 这样的表单的视图,然后可以在站点使用相同的表单从其他最终用户那里收集数据。

请指教。

【问题讨论】:

  • 范围太广,无法在这里回答。
  • 给我一些提示,我会理解的。或者 GitHub 上的 sn-p 会很棒。
  • 您是否希望用户选择如何生成表单,例如第一个问题有 3 个选项,然后是第二个问题有 5 个选项,等等等等
  • 例如查看谷歌调查。 docs.google.com/forms/u/0

标签: python django django-models django-forms


【解决方案1】:

这是一个宽泛的问题,但我会尽可能详细地介绍。 表单构建器类将包含问题,form_id 将负责获取表单的所有问题。因此,如果您想获取 id=1 表单的所有问题,那么您可以轻松过滤。另一种方法是创建一个表,仅用于跟踪仅包含表单 ID 的表单,而创建者和表单构建器将仅包含问题。

存储在数据库中:

class FormBuilder(models.Model):
    form_creator = models.ForeignKey(User)
    form_id = models.AutoIncrementField()
    question_text = models.TextField()
    option_types = models.CharField(max_length=30) # drop down or text fields or some other
    options = models.TextField(null=True) # this can be null for text field like answers and for multiple options it can be stored as comma seperated field
    created_at = models.DateTimeField()

如何存储响应:

class FormResponses(models.Model):
    form_id = models.ForeignKey(FormBuilder)
    responses = models.TextField(null=True) # this follows the same analogies as options in FormBuilder
    created_at = models.DateTimeField()

观看次数:

对于视图要记住的几件事:

  • 您始终检查用户选择的选项是否确实存在。
  • 用户不要填写多个调查。如果您也想要此功能,那么您可以在表单生成器中再添加一个字段以确保这一点。

例子:

示例问题如下所示。

问。这是怎么回事? #问题文本 答。这在表单构建器模型中非常棒#option_type=text 和 options=null 如果这是一个基于选择的问题,那么 option_type=choicesoptions=good, excellent, better 逗号分隔列表作为字符串。

在答案模型中,响应是一个文本字段,因此可以将答案放入其中。

这就像一个伪代码,所以你可能会遇到语法错误,但这会给你一个要点。如果您不从头开始计划解决方案,This 可能会有所帮助。

【讨论】:

  • 我试过这种方式,用户可以选择。但是当用户需要在字段中输入一些内容作为问题时,我无法让它工作。
  • 这是选项类型字段来救援的地方。该字段将区分文本字段答案和基于选项的答案。但这会给前端带来更多的工作。 @ShaziaNusrat
  • 你能给我看一个你给模型的例子吗?如果可行,我将对其进行测试并标记您的问题。谢谢
  • @ShaziaNusrat 为您更好地理解做了一些改进
  • 我很接近了...我通过删除抽象模型拆除了表单构建器应用程序,并使其成为本地化应用程序。现在需要想办法在前端展示模型。你能给我举个例子吗?非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 2018-10-23
相关资源
最近更新 更多