Вставка нескольких экземпляров модели с помощью одного db.put () в Google App Engine - PullRequest
3 голосов
/ 29 апреля 2009

Изменить: Извините, я не уточнил, это вопрос, связанный с Google App Engine.

Согласно this , я могу дать db.put () список экземпляров модели и попросить его ввести их все в хранилище данных. Однако я не смог сделать это успешно. Я все еще немного новичок с Python, так что будь осторожен со мной

list_of_models = []
for i in range(0, len(items) - 1):
    point = ModelName()

    ... put the model info here ...

    list_of_models.append(point)

db.put(list_of_models)

Может ли кто-нибудь указать, где я иду не так?

1 Ответ

4 голосов
/ 30 апреля 2009

Пожалуйста, определите, что вы имеете в виду, говоря "неправильно" - крошечные кусочки кода, которые вы показываете, вполне могут быть частью приложения, которое вполне "правильно". Рассмотрим, например ::10000

class Hello(db.Model):
  name = db.StringProperty()
  when = db.DateTimeProperty()

class MainHandler(webapp.RequestHandler):

  def get(self):
    self.response.out.write('Hello world!')
    one = Hello(name='Uno', when=datetime.datetime.now())
    two = Hello(name='Due', when=datetime.datetime.now())
    both = [one, two]
    db.put(both)

это правильно вставляет две сущности каждый раз, когда вызывается метод get, например, если пример приложения продолжается с:

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
  main()

как в типичном приложении "hello world". Вы можете проверить правильность добавления обоих объектов с помощью средства просмотра хранилища данных консоли sdk или, конечно, добавив другой обработчик, который возвращает объекты и показывает их и т. Д. И т. Д.

Так что уточните, пожалуйста!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...