App Engine - проблема при попытке установить значение свойства Model - PullRequest
1 голос
/ 05 апреля 2009

Я довольно новичок в движке приложений, и я впервые пытаюсь добавить немного текста в базу данных движка приложений.

Вот мой код:

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 ]

1 голос
/ 05 апреля 2009

Я думаю, что основная проблема заключалась в том, что я не мог видеть сообщения об ошибках - очень глупо с моей стороны, я забыл поместить DEBUG = True в мои settings.py

Оказывается, мне нужна многострочная = True в моем StringProperty

Джанго ловит мои исключения для меня.

1 голос
/ 05 апреля 2009

Я думаю, что это должно работать:

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