假设我在Django Tastypie API中过滤产品,我想用product_type = 'cracker' OR product_name = 'oreo'
返回所有产品。使用以下语法:
localhost:8000/api?product_type=cracker&product_name__icontains=oreo
这将返回作为破解者的产品并命名为oreo。如何将其转换为OR语句?
找到了答案。根据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