django - 不可散列的类型:'ReturnDict' drf django
问题描述
我正在尝试添加但收到此错误:
unhashable type: 'ReturnDict'
模型.py:
class SumInsuredEntity(UUIDBase):
field_name = CICharField(max_length=255,null=False,blank=False,verbose_name=_("Field Name"), unique=True)
is_balance = models.ForeignKey(ValidChoice, to_field="key", db_column="is_balance", related_name="is_balance", null=True, blank=True, verbose_name=_("Is Balance"),default='no', on_delete=models.DO_NOTHING)
is_thresold = models.ForeignKey(ValidChoice, to_field="key", db_column="is_thresold", related_name="is_thresold", null=True, blank=True, verbose_name=_("Is Thresold"),default='no', on_delete=models.DO_NOTHING)
status = models.SmallIntegerField(_("Status:1 for Active; 0:InActive"), default=1)
class Meta:
db_table = "tpa_master_sieav"
def __str__(self):
return str(self.uid)
视图.py:
@api_view(['POST'])
def sumInsuredEntityAdd(request):
'''
sumInsuredEntity Create Api
'''
data= decode_data(request.data.copy())
serializer_obj = SumInsuredEntitySerializer(data=data)
if serializer_obj.is_valid(raise_exception=True):
try:
sumInsured_save = serializer_obj.save()
return CustomeResponse(request=request, comment=SUM_INSURED_ENTITY_ADDED_SUCCESSFULLY,data=json.dumps({serializer_obj.data}, cls=UUIDEncoder), message= SUM_INSURED_ENTITY_ADDED_SUCCESSFULLY, status=status.HTTP_200_OK)
except Exception as e:
print(e)
return CustomeResponse(request=request, log_data=json.dumps(str(e), cls=UUIDEncoder), comment=COULD_NOT_SAVE_SUM_INSURED_ENTITY, message=COULD_NOT_SAVE_SUM_INSURED_ENTITY, data=json.dumps({}, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
else:
return CustomeResponse(request=request, comment=FIELDS_NOT_VALID, message=FIELDS_NOT_VALID, data=json.dumps({}, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
它运行良好,但在尝试转储 serializer_obj.data 时显示错误
解决方案
data=json.dumps({serializer_obj.data}, cls=UUIDEncoder)
应改为
data=json.dumps(serializer_obj.data, cls=UUIDEncoder)
还有一件事。不要serializer_obj.is_valid(raise_exception=True):
在语句中使用,因为else
永远不会执行
推荐阅读
- matlab - arrayfun 输出的串联
- javascript - jQuery:在用户点击 Iphone 时播放音频
- r - 使用 R 循环多个变量
- javascript - 如何在点击时切换背景颜色
- git - Vscode git快捷方式“ctrl + enter to commit on master”在Linux mint上不起作用
- html - CSS:下拉菜单被容器的溢出属性隐藏
- algorithm - 使用两个堆栈分隔偶数奇数
- wordpress - 如何在woocommerce中设置最小订单重量?
- google-maps - Flutter:如何在谷歌地图上将 mylocation 按钮放置在不同的位置?
- javascript - 如何使完整的按钮处理数据?平均提交