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

Python 如何创建具有5个多选项的调查,python,google-app-engine,Python,Google App Engine,嘿,我正在尝试创建一个调查,要求用户创建自己的问题,并列出5个多项选择。我的第一个感觉是,我创建了两个数据存储,一个用来存储用户问题,另一个用来存储映射到刚才创建的问题的5个选择。但我不知道我该如何处理这5个选择题,以及如何将它们与问题对应起来。有人有主意吗?非常感谢据我所知,您希望在模式中表示一对多关系。对此有一个分析方法 class Question(db.Model): text = db.StringProperty() class Answer(db.Model):

嘿,我正在尝试创建一个调查,要求用户创建自己的问题,并列出5个多项选择。我的第一个感觉是,我创建了两个数据存储,一个用来存储用户问题,另一个用来存储映射到刚才创建的问题的5个选择。但我不知道我该如何处理这5个选择题,以及如何将它们与问题对应起来。有人有主意吗?非常感谢

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

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 %}

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

如果您在浏览器中呈现调查问题,我肯定会选择一个模型(在Peter提到的一个数据存储中)具有问答属性。将问题和答案序列化为两个TextProperties(请确保首先转义它们)。从这一点上讲,一切都可以在Javascript内部完成,方法是将文本拆分为一个数组,并构建任何类型的innerHTML。您可能希望包含第三个字段,其中包含有关问题是仅为单个答案(单选按钮或下拉列表)还是多选(复选框)的元数据。一个GAE实体,一个get_by_id,如果使用ndb,则自动memcache,无需额外处理成本(例如Django模板)。这是最快、最便宜、非常灵活的imho。嗯-stevep.

您将不会创建两个数据存储。您可能正在创建两种不同的类型或模型。