首页 > 解决方案 > TypeError:不可散列的类型:django中的'slice'

问题描述

当我尝试通过“get_beneficiary”获取受益人时出现错误,我不明白这是什么意思,如果以下代码有问题,请告诉我修复它。

views


class ListView(ResponseViewMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    serializer_class = CourseFilterSerializer
    queryset = Course.objects.all()

    def get_queryset(self, common_data=None):
        if common_data:
            common_data = common_data
        else:
            common_data = Course.objects.all()
            print(common_data)

        course_beneficiaries = get_beneficiary(common_data)
 response_data = {
            "course_beneficiaries": course_beneficiaries,
        }
        return response_data



def get_beneficiary(data):
    ben_details = []
    beneficiary = Beneficiary.objects.all()
    beneficiaries = CourseBeneficiarySerializer(beneficiary, many=True)
    for ben in beneficiaries.data:
        count = data.filter(beneficiary=ben['id']).count()
        count_data = {
            'name': ben['beneficiary_name'],
            'count': count
        }
        ben_details.append(count_data)
    return ben_details

标签: python-3.xdjango-modelsdjango-rest-frameworkdjango-views

解决方案


当您从模型中获取数据时,

 count_data = {
                'name': ben['beneficiary_name'],
                'count': count
            }

应该像

count_data = {
            'name': ben.values('beneficiary_name'),
            'count': count
        }

推荐阅读