首页 > 解决方案 > 如何为模型添加多个过滤器

问题描述

我有库存、状态和交易表。交易具有多对一的库存链接,库存与状态具有一对一的关系。

我正在尝试通过结帐 > 3 sep 和在 Django 中具有结帐状态的库存来提取所有交易。

我正在使用以下语法来拉入 pyton,它给出了错误

   inventory = Inventory.objects.get(status = 2)
   transactions1 = Transaction.objects.filter((checkout_time__gt='2019-09-03') and inventory__in=inventory.id)

标签: pythondjangodjango-modelsdjango-views

解决方案


如果您正在寻找AND这样的声明,您可以简单地链接过滤器:

Transaction.objects.filter(checkout_time__gt='2019-09-03', inventory__status=2)

如果你想更明确,你可以使用 Django 的Q对象:

from django.models import Q
Transaction.objects.filter(Q(checkout_Time__gt='2019-09-03'), Q(inventory__status=2))

使用 django 的 Q 对象,您可以OR使用如下运算符构建查询|

Transaction.objects.filter(Q(checkout_Time__gt='2019-09-03') | Q(inventory__status=2))

推荐阅读