Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中数组的并集和交集_Python_Mysql_Django - Fatal编程技术网

Python Django中数组的并集和交集

Python Django中数组的并集和交集,python,mysql,django,Python,Mysql,Django,我们如何在Django中实现最后三条语句?我见过其他类似的问题,请注意,我不是在寻找 if(filter[0][0]): films_material_PP = GlassFilm.objects.filter(f_material = 'PP') else: films_material_PP = GlassFilm.objects.none() if(filter[0][1]): films_material_PVC = GlassFilm.objects.filt

我们如何在Django中实现最后三条语句?我见过其他类似的问题,请注意,我不是在寻找

if(filter[0][0]):
    films_material_PP = GlassFilm.objects.filter(f_material = 'PP')
else:
    films_material_PP = GlassFilm.objects.none()

if(filter[0][1]):
    films_material_PVC = GlassFilm.objects.filter(f_material = 'PVC')
else:
    films_material_PVC = GlassFilm.objects.none()


if(filter[1][0]):
    films_color_Grey = GlassFilm.objects.filter(f_color = 'Grey')
else:
    films_color_Grey = GlassFilm.objects.none()

if(filer[1][1]):
    films_color_Yellow = GlassFilm.objects.filter(f_color = 'Yellow')
else:
    films_color_Yellow = GlassFilm.objects.none()

films_material.union(films_material_PP,films_material_PVC)
films_color.union(films_color_Grey,films_color_Yellow)
films_total.intersect(films_material,films_color)
*编辑:*以下是我想要实现的目标。我为用户提供了两种类型的HTML复选框 (1) 材料 (2) 颜色

在Material中,用户可以选择两个选项“PP”和“PVC”。类似地,用户可能会勾选两个颜色的复选框(“灰色”和“黄色”)。 如果用户勾选“PP”和“Grey”,我希望显示同时具有这两个属性的对象。如果用户只勾选“PP”,我只想显示材质为“PP”的对象。如果用户同时勾选“PP”和“PVC”,那么我想显示那些材质为“PP”或“PVC”的对象


正是出于这个目的,我想要一个与上述代码等价的代码。现在,
union()
intersect()
函数只是伪代码,我真的需要正确的django/python代码。

您可以使用
&
操作符执行
集合
对象的交集和并集:

intersection=queryset1&queryset2
union=queryset1 | queryset2

if(filter)语句,您为什么不寻找特定的解决方案呢。基于某些条件,我只想得到一些
GlassFilm
对象。我不确定你所说的
if(filter)
是什么意思。如果您指的是python函数,那么您提到的代码不是这样工作的。“过滤”是由数据库引擎完成的,而不是由python完成的。这应该比从数据库中获取所有对象,然后在python中执行集合操作更有效,这似乎是您正在寻找的解决方案否!!我指的是以下类型的语句:
if(filter[1][0]):
GlassFilm.objects.filter((Q(f_material = 'PP') | Q(f_material = 'PVC')) & (Q(f_color = 'Grey')|Q(f_color = 'Yellow')))