1

我对应用引擎很陌生,我第一次尝试在应用引擎数据库中设置一些文本。

这是我的代码:

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)
4

2 回答 2

1

我认为这应该有效:

def setVenueIntroText(text):
  query = db.GqlQuery("SELECT * FROM Venue")
  for result in query:
    result.intro_text = text
    db.put(result)
于 2009-04-05T08:30:22.267 回答
1

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

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

Django 正在为我捕捉我的异常。

于 2009-04-05T19:42:56.393 回答