如何创建一个有5个选项的调查问卷
你好,我正在尝试创建一个调查,让用户自己提出问题并列出5个选项。我的想法是创建两个数据存储,一个用来存用户的问题,另一个用来存与这个问题相关的5个选项。但是我不太清楚该如何处理这5个选项,以及如何把它们和问题关联起来。有没有人能给我点建议?非常感谢!
2 个回答
1
如果你是在浏览器里展示调查问题,我建议你使用一个模型(就像Peter提到的那样),把问题和答案放在同一个数据存储里。你可以把问题和答案分别转成两个文本属性(记得先进行转义)。接下来,你可以在JavaScript里处理这些文本,把它们分割成一个数组,然后根据需要构建任何类型的HTML内容。你可能还想加一个字段,用来说明这个问题是单选(像单选按钮或下拉列表)还是多选(像复选框)。这样只需要一个GAE实体,调用一次get_by_id,如果你使用ndb的话,还能自动缓存,处理成本也很低(比如不需要Django模板)。这样做是最快最省钱的,而且非常灵活,我觉得这样很好。希望对你有帮助。-stevep.
1
根据我的理解,你想在你的数据结构中表示一种一对多的关系。关于这个,有一个分析性的指南可以参考。
class Question(db.Model):
text = db.StringProperty()
class Answer(db.Model):
text = db.StringProperty()
question = db.ReferenceProperty(Question,
required=True,
collection_name='answers')
这只是你模型大概应该是什么样子的。你可以在Django的渲染模板中这样访问每个问题的答案,前提是你通过GQL查询找到了你的问题。如果你想为每个问题指定一个最大答案数量,那就需要手动设置。
{% for answer in question.answers %}
{{answer.text}}
{% endfor %}
我强烈建议你去看看这个教程。