drf 自带BaseFilterBackend
过滤器
常用于数据筛选,如只查单个user下的东西
from rest_framework.filters import BaseFilterBackend
class MineFilterBackend(BaseFilterBackend):
FILED="id"
def filter_queryset(self, request, queryset, view):
user_id = request.user['id']
return queryset.filter(**{self.FILED:user_id})
#用type继承类
type("MineBackend",(MineFilterBackend,),{"FILED":"xxx_id"})
使用
class UserInfoView(mixin.RetrieveModelMixin, GenericViewSet):
filter_backends = [MineFilterBackend]
queryset = models.UserInfo.objects.all()
serializer_class = account.UserInfoSerializer