我有一个动态生成的列表让我们假设
my_list = ['11','13','15']
我的model.py是
class OptionProduct(models.Model):
product_name = models.ForeignKey('products.Product', null=True, blank=True, verbose_name=_('Product'))
option_name = models.ForeignKey(Options,null=True, blank=True)
option_value = models.ForeignKey(OptionValue,null=True, blank=True)
我的列表是指OptionProduct表中的option_value
现在我想获得包含所有选项值的产品
product_name | option_value | option_name
1 | 11 | 1
1 | 13 | 1
2 | 11 | 1
2 | 13 | 1
3 | 11 | 1
3 | 13 | 1
2 | 15 | 2
1 | 15 | 2
因此它希望将product_name 1和2作为输出,因为它在option_value中具有my_list的全部三个值 每次my_list改变,所以它按照那个
工作那么如何在django中设置查询
答案 0 :(得分:2)
我希望这可以通过两个步骤实现。请尝试以下查询。
import collections
option_product_list = OptionProduct.objects.filter(option_value__id__in=my_list).values_list('product_name', flat=True)
output = [item for item, count in collections.Counter(list(option_product_list)).items() if count >= len(my_list)]