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 で最後の 3 つのステートメントをどのように実装できますか? このような他の質問を見たことがありますが、探しているわけではないことに注意してください
GlassFilm.objects.filter((Q(f_material = 'PP') | Q(f_material = 'PVC')) & (Q(f_color = 'Grey')|Q(f_color = 'Yellow')))
*編集: *これが私が達成したいことです。ユーザーに 2 種類の HTML チェックボックスを提供します (1) 素材 (2) 色
Material には、ユーザーが選択できる "PP" と "PVC" の 2 つのオプションがあります。同様に、Color には、ユーザーがチェックできる 2 つのチェックボックス ("Grey" と "Yellow") があります。ユーザーが「PP」と「グレー」にチェックマークを付けると、これら 2 つのプロパティの両方を持つオブジェクトが表示されます。ユーザーが「PP」のみにチェックを入れた場合、素材が「PP」であるオブジェクトのみを表示したいと思います。ユーザーが「PP」と「PVC」の両方にチェックマークを付けると、「PP」または「PVC」のいずれかの素材を持つオブジェクトを表示したいと思います。
上記のコードと同等のコードが欲しいのは、この目的のためです。union()
関数と関数は、intersect()
適切な django/python コードが本当に必要な疑似コードにすぎません。