我对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)
答案 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正在为我捕捉我的例外情况。