Проверьте, существует ли сущность в хранилище данных в GAE Python


Я пытаюсь создать (что-то вроде) генератор номеров счетов. Но, поскольку счета-фактуры могут быть равны нулю или больше при открытии бизнеса, Как узнать, существует ли объект?

query = "SELECT loanNumber FROM Loans ORDER BY loanNumber DESC LIMIT 1"
loanNumbers = db.GqlQuery(query)

result = loanNumbers.get()

# for loanNumber in loanNumbers:
if loanNumbers is None:
  print "Print the first number"
else:
  print "Print the next number"

Ошибка

KindError: No implementation for kind 'Loans'
1 3

1 ответ:

Теперь есть некоторые хорошие вспомогательные функции метаданных, задокументированные здесь: https://developers.google.com/appengine/docs/python/datastore/metadataentityclasses#get_kinds

Вот пример проверки на Loans перед продолжением запроса и остальной части кода:

from google.appengine.ext.db import metadata

my_kinds = metadata.get_kinds() # Returns a list of entity kind names.

if u'Loans' in my_kinds:
    ...
Обратите внимание, что my_kinds не будет содержать Loans до тех пор, пока кредитная сущность не будет фактически создана.

Если вам требуется больше контроля, или вы предпочитаете свернуть свою собственную вспомогательную функцию, есть примеры этого здесь: https://developers.google.com/appengine/docs/python/datastore/metadataqueries#Kind_Queries