带有两个__in的Django ORM过滤器



我有两个字段的模型。Product_ids_list = [1,2,3,4]Selling_prices_list = [65,89,93]product_ids_list和selling_prices_list的长度相同

我能够对一个product_id及其相应的销售价格执行以下ORM过滤器。

product_instances = Product.objects.filter(product_id=product_ids_list[0], selling_price=selling_prices_list[0]).first()

但是如何用一个DB调用product_ids_list和它对应的selling_prices_list来执行ORM过滤器。

product_instances = Product.objects.filter(product_id__in=product_ids_list, selling_price__in=selling_prices_list).first() (This isn't working in the expected way)

Ifproduct_idForeignKeyselling_priceIntegerField那么过滤器代码将是:

product_instances = Product.objects.filter(product_id__id__in=product_ids_list, selling_price__in=selling_prices_list).first()

既然你方提供的是产品编号清单,我们必须比较一下产品编号。如果我们使用product_id__in进行过滤,它将Product对象与列表中的id进行比较。

Suggesstion:最好将ForeignKey字段名设置为product代替product_id

最新更新