Вы не можете запрашивать элементы, используя фильтр "свойство равно нулю". Тем не менее, вы можете добавить логическое свойство к странице, которое сигнализирует, есть ли у него элементы:
class Page(db.Model):
url = db.StringProperty(required=True)
has_items = db.BooleanProperty(default=False)
Затем переопределите метод put для Item, чтобы перевернуть флаг. Но вы можете инкапсулировать эту логику в модель страницы (возможно, Page.add_item (self, * args, ** kwargs)):
class Item(db.Model):
page = db.ReferenceProperty(Page, required=True)
name = db.StringProperty(required=True)
def put(self):
if not self.page.has_items:
self.page.has_items = True
self.page.put()
return db.put(self)
Следовательно, запрос для страниц без элементов будет:
pages_with_no_items = Page.all().filter("has_items =", False)