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セットアップのために、それが何であるかはわかりません。

OK、以下の回答のコードを試してみました。データストアを削除した後も機能しましたが、まだ満足していません。

ここにアップデートがあります:

コードを自分にとって意味のあるものに変更しました。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

主な問題は、エラーメッセージが表示されなかったことだと思います。本当にばかげているので、settings.pyにDEBUG=Trueを入力するのを忘れました。

StringPropertyにmultiline=Trueが必要であることがわかりました

Djangoは私の例外をキャッチしています。

于 2009-04-05T19:42:56.393 に答える
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 に答える