-1
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 コードが本当に必要な疑似コードにすぎません。

4

1 に答える 1