如何查询ReferenceProperties?

发布于 2024-10-09 12:06:52 字数 245 浏览 0 评论 0原文

假设:

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

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

Assume:

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

How do I query for Pets that have user Owner A and Vet B? I assume the references in the Pet class are keys. Please post a reference if you know a good one - I could not find a good example in the docs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

晨光如昨 2024-10-16 12:06:52

它们是钥匙。

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

按键过滤: 问题 GQL ReferenceProperty 过滤器

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())

使用 from_path 创建键: 数据存储 key.from_path

Key.from_path(kind, id_or_name, parent=none, namespace=None, **kwds)
Key.from_path('Pet', 'Dr Vet')
Key.from_path('Pet', 123)

They are keys.

And you can get them from a model instance or you can generate them from scratch.

Filter on a key: Question GQL ReferenceProperty filter

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())

Create keys using from_path: Datastore key.from_path

Key.from_path(kind, id_or_name, parent=none, namespace=None, **kwds)
Key.from_path('Pet', 'Dr Vet')
Key.from_path('Pet', 123)
心安伴我暖 2024-10-16 12:06:52

经过一番尝试和错误后,我发现解决方案很简单:

q = Pet.all()
q.filter("owner", owner)
q.filter("vet", vet)
q.get()

After some trial and error I found the solution was straight forward:

q = Pet.all()
q.filter("owner", owner)
q.filter("vet", vet)
q.get()
逆流 2024-10-16 12:06:52

查看 Gqlquery 类:

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

Have a look to Gqlquery class:

db.GqlQuery("SELECT * FROM Pet WHERE owner = :1 AND vet = :2", user.key(), vet.key())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文