Django Tastypie 过滤器 OR 语句

Posted

技术标签:

【中文标题】Django Tastypie 过滤器 OR 语句【英文标题】:Django Tastypie filter OR statement 【发布时间】:2019-02-08 20:05:46 【问题描述】:

假设我在 Django Tastypie API 中过滤产品,我想返回所有带有product_type = 'cracker' OR product_name = 'oreo' 的产品。使用此语法:

localhost:8000/api?product_type=cracker&product_name__icontains=oreo

这将返回饼干和名为 oreo 的产品。我怎样才能把它变成一个 OR 语句?

【问题讨论】:

【参考方案1】:

找到答案。根据此处的 Django 查询文档: https://docs.djangoproject.com/en/2.1/topics/db/queries/#complex-lookups-with-q-objects

复杂的查询(例如 OR 语句)只能使用 Q() 对象来完成。 Tastypie 没有特殊的语法来处理 URL 中的复杂查询,但您可以在资源中构建自定义查询,如以下答案所示:

Django Tastypie Advanced Filtering: How to do complex lookups with Q objects

【讨论】:

以上是关于Django Tastypie 过滤器 OR 语句的主要内容,如果未能解决你的问题,请参考以下文章

包含过滤条件的 Django-tastypie REST url

使用 TastyPie 过滤不同的字段

通过外键过滤 Tastypie 资源

Django/Tastypie - DELETE 请求删除所有内容

Django RESTful API - django-piston 与 django-tastypie

如何通知应用程序凭据在 Django/Tastypie/REST 中成功