Django 按字段筛选查询集=';特定值';else字段=';全部';

Django 按字段筛选查询集=';特定值';else字段=';全部';,django,django-queryset,Django,Django Queryset,在我的例子中,我有3个字段,动态设置为全部或特定值 # note im using Q() function queryset = queryset.filter( Q(first_name=query) | Q(last_name=query) & Q(status=dynamic_status) & Q(gender=dynamic_gender) & Q(position=dymanic_position) ) 状态可以是活动/非活动/

在我的例子中,我有3个字段,动态设置为全部或特定值

# note im using Q() function
queryset = queryset.filter(
    Q(first_name=query) | Q(last_name=query) & 
    Q(status=dynamic_status) & Q(gender=dynamic_gender) & 
    Q(position=dymanic_position)
)
  • 状态
    可以是活动/非活动/全部
  • 性别
    可以是男性/女性/所有
  • 位置
    可能位置1/位置2/位置3/全部
  • 请注意,“所有”表示对某个字段的有限选择。


    如果其中一个字段设置为ALL,我如何过滤queryset中的ALL实例?我应该使用
    IF-ELSE
    条件并编写多个queryset筛选器,还是有一个优雅的方法?

    IF-ELSE
    条件会更好,我想。这是我的选择,但如果有优雅的解决方案,我仍然在寻找。