В документации AppEngine есть несколько примеров транзакций, использующих нативную технику AppEngine для выполнения транзакций запросов к нативным объектам.
По документам на http://www.allbuttonspressed.com/projects/django-nonrel [1], я бы хотелиспользовать транзакции AppEngine для запроса объектов Django.Это возможно?
def txn():
index = random.randint(0, NUM_SHARDS - 1)
shard_name = "shard" + str(index)
counter = SimpleCounterShard.objects.filter(name=shard_name)
# Make counter if it doesn't exist
if not len(counter):
counter = SimpleCounterShard(name=shard_name)
counter.count += 1
counter.put()
db.run_in_transaction(txn)
В настоящее время происходит сбой: «Внутри транзакции разрешены только запросы предков».Я понимаю, что это просит меня сделать что-то с классом предка, но я не уверен, что или почему.
Любые советы?
[1] «Вы не можете использовать API транзакций Django. Если ваша конкретная БД поддерживает специальный тип транзакции (например, run_in_transaction () в App Engine), у васиспользовать платформо-зависимые функции. "