1

我想在谷歌应用引擎中创建一个具有以下属性的数据库

class Questions(db.Model):
    title = db.StringProperty()
    author = db.StringProperty()
    text = db.TextProperty()
    date = db.DateProperty(auto_now_add = True)
    votes = db.IntegerProperty()
    answers = db.StringListProperty()
    tags = db.StringProperty()

问题是当我去仪表板并尝试从那里创建一个实体时,答案属性不存在。

有没有更好的方法来获得字符串列表,以便我可以单独操作它们?

更新:

当我尝试更新实体并在字符串列表中添加一些内容时:

链接是 localhost:9082/questions-4889528208719872

class QuestionPageHandler(BaseHandler):
    def get(self, *a, **kw):
        sURL = self.request.url.split("-")
        question = Questions.get_by_id(long(sURL[-1]))
        self.render_content("questionpage.html",question=question)

    def post(self, *a, **kw):
        answer = self.request.get("answer")
        sURL = self.request.url.split("-")
        question = Questions.get_by_id(long(sURL[-1]))
        question.answers.append(answer)
        question.put()  **<---- I forgot to add this EDIT**

然后在 html 上我使用这个:

{% for answer in question.answers %}
   <div class="well span7">
      <p>{{answer}}</p>
   </div>
{% endfor %}

但我有一个空白页。

4

2 回答 2

2

解决方案:

def post(self, *a, **kw):
        answer = self.request.get("answer")
        sURL = self.request.url.split("-")
        question = Questions.get_by_id(long(sURL[-1]))
        question.answers.append(answer)
        **question.put()** <-- add this
于 2013-05-09T09:57:13.787 回答
1

链接到新开发银行

也许尝试具有列表类型属性的 NDB

看->

ndb.StringProperty(repeated=True) 或
ndb.StructuredProperty(xxx,repeated=True)

于 2013-05-09T10:13:06.053 回答