Django 过滤器集和多值

问题描述

这是我第一次使用 Django 过滤器集。当过滤器字段为给定目的使用多个输入时,它只给出一个输出,但实际上可以是两个或更多。

代码如下:

class CourseFilterSet(django_filters.FilterSet):

    beneficiary = django_filters.CharFilter(method='get_beneficiary',field_name='beneficiary')
    type = django_filters.CharFilter(method='get_type',field_name='type')
    
    def get_beneficiary(self,queryset,field_name,value,):
        if value:
            return queryset.filter(beneficiary=value)
        return queryset

    def get_type(self,):
        print(value)
        resp = []
        if value:
            data = CourseSubscription.objects.filter(subscription_type=value).values('course')
            l = len(data)
            print(data)
            for i in range(l):
                print(data[i]['course'])
                d = data[i]['course']
                queryset = Course.objects.filter(id=d)
                return queryset
        return queryset

class CourseFilterView(viewsets.GenericViewSet):
    serializer_class = CourseFilterSerializer
    queryset = Course.objects.all()
    filterset_class = CourseFilterSet

在受益人字段中使用两个值,它们只给出第一个或最后一个输出,而不是正确的输出。 给我解决这个问题的正确方法..!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)