Проблема с моделью данных, которую вы предложили здесь.У вас не может быть большого числа ключей на одной стороне отношений, как описано в этой статье - http://code.google.com/appengine/articles/modeling.html
Кроме того, цикл for в вашем сегменте кода для вставки записи библиотеки также вставляет всеАвторы и книги последовательно.Если предположить, что для каждого хранилища данных установлено около 40 мс, и если у вас 50 книг и 50 авторов, это займет 4 секунды, что очень долго!И, наконец, ваша библиотечная запись создается.
Вместо списка книг на стороне библиотеки вы можете определить свои модели следующим образом:
class Library(db.Model):
name = db.StringProperty()
class Book(db.Model):
author = db.ReferenceProperty(Author)
library = db.ReferenceProperty(Library, collection_name = 'books')
В этом случае ваши книги определяютк какой библиотеке он принадлежит.Вы можете просто создать библиотеку один раз и сослаться на все книги.Когда вы хотите получить книги, вы можете сделать
for book in my_library.books:
// Do something with books
Это займет 40 мсек для ввода каждой книги, но по крайней мере вы можете вводить книги независимо и ссылаться на библиотеку, которая уже была создана.*