App Engine - 尝试设置Model属性值时出现问题

时间:2009-04-05 07:59:08

标签: python google-app-engine bigtable

我对app引擎很陌生,我正试图首次在app引擎数据库中设置一些文本。

这是我的代码:

def setVenueIntroText(text):
  venue_obj = db.GqlQuery("SELECT * FROM Venue").get()
  venue_obj.intro_text = text     # Works if I comment out
  db.put(venue_obj)               # These two lines

这引发了某种异常 - 由于我的django 1.02设置,我无法分辨它是什么。

好的,我在下面给出了答案中的代码,删除我的数据存储后它仍然有用,但我仍然不满意。

以下是更新:

我已经将我的代码修改为看起来对我有意义的东西。当我调用它时,getVenueIntroText不会抱怨 - 我在数据库中没有任何项目。

当我调用setVenueIntroText时,它不喜欢我正在做的事情 - 如果有人知道原因,我真的想知道:)

这是我最近的尝试:

def getVenueIntroText():
  venue_info = ""
  venue_obj = db.GqlQuery("SELECT * FROM Venue").get()

  if venue_obj is not None:
      venue_info = venue_obj.intro_text

  return venue_info

def setVenueIntroText(text):
  venue_obj = db.GqlQuery("SELECT * FROM Venue").get()
  if venue_obj is None:
     venue_obj = Venue(intro_text = text)
  else:
     venue_obj.intro_text = text

  db.put(venue_obj)

2 个答案:

答案 0 :(得分:1)

我认为这应该有效:

def setVenueIntroText(text):
  query = db.GqlQuery("SELECT * FROM Venue")
  for result in query:
    result.intro_text = text
    db.put(result)

答案 1 :(得分:1)

我认为主要的问题是我看不到错误消息 - 真的很愚蠢,我忘了把DEBUG = True放在我的settings.py

事实证明我在StringProperty中需要一个multiline = True

Django正在为我捕捉我的例外情况。