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