如何创建具有5个多项选择的调查

时间:2011-02-20 16:30:02

标签: python google-app-engine

嘿我正在尝试创建一项调查,要求用户创建自己的问题并列出5个多项选择。我的第一个意义是我创建了两个数据存储区,一个用于存储用户问题,另一个用于存储5个选项映射到刚刚创建的问题。但我不知道我应该如何处理5个多项选择以及如何将它们与问题进行映射。有谁有想法?非常感谢你

2 个答案:

答案 0 :(得分:1)

据我所知,您希望在模式中表示一对多关系。对此有一个分析guide

class Question(db.Model):
    text = db.StringProperty()

class Answer(db.Model):
    text = db.StringProperty()
    question = db.ReferenceProperty(Question,
                               required=True,
                               collection_name='answers')

这只是你的模型应该是什么样子的要点。您可以从GQL中的查询中找到Django渲染模板中每个问题的答案,并找到您的问题。如果要为每个问题指定最大答案数,则必须手动执行。

{% for answer in question.answers %}
    {{answer.text}}
{% endfor %}

我绝对建议您阅读本教程。

答案 1 :(得分:1)

如果您在浏览器中展示调查问题,我肯定会使用一个模型(在Peter指出的一个数据存储区中)具有问题和答案属性。将问题和答案序列化为两个TextProperties(请务必先将它们转义)。从这一点开始,一切都可以在Javascript中完成,方法是将文本拆分为数组,并构建任何类型的innerHTML。您可能希望包含第三个字段,其中包含有关问题是否仅为单一答案(单选按钮或下拉列表)或多选(复选框)的元数据。如果你使用ndb,一个GAE实体,一个get_by_id,auto-memcache,没有额外的处理成本(例如Django模板)。这是最快,最便宜,非常灵活的imho。 HTH。 -stevep。

相关问题