python-3.x - 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
解决方案
当您从模型中获取数据时,
count_data = {
'name': ben['beneficiary_name'],
'count': count
}
应该像
count_data = {
'name': ben.values('beneficiary_name'),
'count': count
}
推荐阅读
- c++ - 如何使用 CMake 更改构建机器类型
- git - BFG ERROR: BFG aborting: No refs to update - nodirty commits found
- flutter - 如何使用自定义布局从 Firestore 循环数据
- java - 如何获取键值并对哈希图中的值执行一些操作
- python - Python - 使用 OR 条件过滤行
- java - 如何为我的 android 锻炼应用程序进行设置?
- git - git 使用 .gitattributes 中的什么规则来确定文件类型和行尾?
- python - 如何重新分配随机选择?
- flutter - 如何在两个偏移之间添加控制点(贝塞尔曲线)?
- java - 将字符串转换为字节数组但保持相同的值