Django 删除数据库Uploads模型图片对象时返回404错误如何解决?
问题排查及解决方法
- 缺少DRF视图装饰器
UploadsDetails视图未添加@api_view装饰器,导致DRF无法正确识别请求方法、处理请求参数,补充装饰器即可:
@api_view(['GET', 'DELETE']) def UploadsDetails(request,pk): # 原有逻辑保持不变
- 主键类型与路由匹配规则不匹配
路由配置中使用的是<uuid:pk>匹配规则,要求Uploads模型的主键必须为UUIDField类型。如果你的主键用的是默认自增Int类型,路由会匹配失败直接返回404,修改路由匹配规则即可:
path('Uploads/<int:pk>/',UploadsDetails),
- 请求路径不符合规范
DELETE请求路径必须符合/Uploads/[资源id]/格式,注意末尾的斜杠不能省略,Django默认的路径重定向逻辑在处理DELETE请求时会失效,缺少末尾斜杠会直接返回404。 - 顺带修复GET接口的潜在问题
现有GET方法直接将序列化器实例传给JsonResponse,需要改为传入序列化后的data属性,避免后续调用GET接口报错:
if request.method =='GET': serializers=Fileserializers(image) return JsonResponse(serializers.data)
内容的提问来源于stack exchange,提问作者Rihab sabri
相关产品推荐
相关产品推荐

