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)
我们如何在 Django 中实现最后三个语句?我看过其他类似的问题,请注意我不是在寻找
GlassFilm.objects.filter((Q(f_material = 'PP') | Q(f_material = 'PVC')) & (Q(f_color = 'Grey')|Q(f_color = 'Yellow')))
*编辑: *这是我想要实现的目标。我为用户提供两种类型的 HTML 复选框 (1) 材质 (2) 颜色
在 Material 中,用户可能会勾选两个选项“PP”和“PVC”。同样,用户可能会勾选颜色中的两个复选框(“灰色”和“黄色”)。如果用户勾选“PP”和“灰色”,我想显示具有这两个属性的对象。如果用户只勾选“PP”,我只想显示材质为“PP”的那些对象。如果用户同时勾选“PP”和“PVC”,那么我想显示那些材质为“PP”或“PVC”的对象。
正是出于这个目的,我想要一个与上述代码等效的代码。现在union()
andintersect()
函数只是我真正想要正确的 django/python 代码的伪代码。