2

Рассмотрим следующий фрагмент кода:Как запросить объекты без каких-либо предков в Appengine питона

from google.appengine.ext import ndb 
import pprint 

class Entity(ndb.Model): 
    name = ndb.StringProperty() 
    age = ndb.IntegerProperty() 

entity = Entity() 
entity.name = "hello" 
entity.age = 23 
entity.key = ndb.Key(Entity, "p1") 
entity.put() 

e2 = Entity() 
e2.key = ndb.Key(Entity, "p2", parent=ndb.Key(Entity, "p1")) 
e2.name = "he11o2" 
e2.age = 34 
e2.put() 

Я хочу, чтобы запросить записи таблицы сущностей, которые не имеют никакого родителя, связанный с ним. Для приведенного выше примера он должен дать мне только объект p1.

Как я могу это достичь?

ответ

2

Вы не можете. Вы можете запрашивать только те вещи, которые существуют в индексе. Вещи без значения, если явно не установлено значение None (и вы не можете сделать это для родителей), не могут быть запрошены.

Единственный способ, который я могу предложить, это иметь вычисленное свойство или другое свойство, которое вы задали None, если нет родителя или родительского ключа или флага. Затем вы можете запросить для всех объектов с parent = None. parent является собственностью объекта.

Смежные вопросы