Python 如何查询ReferenceProperty?

Python 如何查询ReferenceProperty?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,假设: 如何查询拥有用户所有者A和兽医B的宠物?我假设Pet类中的引用是键。如果你知道一个好的例子,请发表一篇参考文章-我在文档中找不到一个好的例子。经过一些尝试和错误,我发现解决方案是直截了当的: class Pet (db.model): owner = db.ReferenceProperty(User) vet = db.ReferenceProperty(Vet) name = db.StringProperty() 看一看课堂: 它们是钥匙 您可以从模型实例获取它们,也

假设:


如何查询拥有用户所有者A和兽医B的宠物?我假设Pet类中的引用是键。如果你知道一个好的例子,请发表一篇参考文章-我在文档中找不到一个好的例子。

经过一些尝试和错误,我发现解决方案是直截了当的:

class Pet (db.model):
  owner = db.ReferenceProperty(User)
  vet = db.ReferenceProperty(Vet)
  name = db.StringProperty()
看一看课堂:

它们是钥匙

您可以从模型实例获取它们,也可以从头开始生成它们

对键进行筛选:

使用from_路径创建关键点:

q = Pet.all()
q.filter("owner", owner)
q.filter("vet", vet)
q.get()
db.GqlQuery("SELECT * FROM Pet WHERE owner = :1 AND vet = :2", user.key(), vet.key())
db.GqlQuery("SELECT * FROM Pet WHERE owner = :1 and vet = :2", owner.key(), vet.key())

Pet.all().filter("owner =", owner.key()).filter("vet =", vet.key())
Key.from_path(kind, id_or_name, parent=none, namespace=None, **kwds)
Key.from_path('Pet', 'Dr Vet')
Key.from_path('Pet', 123)