我无法将文本添加到textProperty

时间:2015-02-13 04:45:17

标签: python google-app-engine google-cloud-datastore

我需要将大文本(70k char)存储到数据存储区。我做的是在localhost上正常工作。但是当我将它上传到gae时它不存储任何东西。它只显示“{}”

如果我将textProperty重命名为StringProperty并更改文本,则它可以正常工作。我在哪里犯了错误?

我的db.model:

class Eyut(db.Model):
    texx=db.TextProperty()
    date = db.DateTimeProperty(auto_now_add=False)
    glink=db.StringProperty()

首先添加:

eks=Eyut(parent=_gazKey('yaz','yaze'),key_name='yaze')
eks.put()

向其添加文字:

y=Eyut.get_by_key_name('yaze',parent=db.Key.from_path('Bed','yaz','yaze',1))
y.texx="any text"
y.put()

2 个答案:

答案 0 :(得分:1)

你没有提供足够的代码,但有点猜测这是我最简单的尝试再现你报告的内容:

class Bed(db.Model):
    name = db.StringProperty()

def _gazKey(x, y):
    return db.Key.from_path('Bed', x, y, 1)

class Eyut(db.Model):
    texx=db.TextProperty()
    date = db.DateTimeProperty(auto_now_add=False)
    glink=db.StringProperty()

class MainHandler(webapp2.RequestHandler):
    def get(self):
        eks=Eyut(parent=_gazKey('yaz','yaze'),key_name='yaze')
        eks.put()
        y=Eyut.get_by_key_name('yaze',parent=db.Key.from_path('Bed','yaz','yaze',1))
        y.texx="any text"
        y.put()
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write(y.texx + '\n')

此代码显示任何问题,特别是您报告的问题 - 实体及其文字属性与预期一致。

请修改您的问题,以显示此代码的最小更改,重现您报告的问题。

答案 1 :(得分:-2)

StringProperty

  

短串。采用Python str或unicode(basestring)值   500个字符或更少。

TextProperty

  

长串。

     

与StringProperty不同,TextProperty值可以超过500   人物很长。