feat: base userfilter获取归属于该部门及以下部门的人
This commit is contained in:
parent
9cb0c5c681
commit
e2ec9625b4
|
|
@ -1,8 +1,12 @@
|
||||||
from django_filters import rest_framework as filters
|
from django_filters import rest_framework as filters
|
||||||
from .models import Dept, User
|
from .models import Dept, User
|
||||||
|
from apps.utils.queryset import get_child_queryset_u
|
||||||
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
|
||||||
class UserFilterSet(filters.FilterSet):
|
class UserFilterSet(filters.FilterSet):
|
||||||
|
ubelong_dept__name = filters.CharFilter(label='归属于该部门及以下(按名称)', method='filter_ubelong_dept__name')
|
||||||
|
ubelong_dept = filters.CharFilter(label='归属于该部门及以下', method='filter_ubelong_dept')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
|
|
@ -20,6 +24,14 @@ class UserFilterSet(filters.FilterSet):
|
||||||
'posts__code': ["exact", "contains"],
|
'posts__code': ["exact", "contains"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def filter_ubelong_dept__name(self, queryset, name, value):
|
||||||
|
depts = get_child_queryset_u(Dept.objects.filter(name=value))
|
||||||
|
return queryset.filter(belong_dept__in=depts)
|
||||||
|
|
||||||
|
def filter_ubelong_dept(self, queryset, name, value):
|
||||||
|
depts = get_child_queryset_u(Dept.objects.filter(id=value))
|
||||||
|
return queryset.filter(belong_dept__in=depts)
|
||||||
|
|
||||||
|
|
||||||
class DeptFilterSet(filters.FilterSet):
|
class DeptFilterSet(filters.FilterSet):
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue