首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Django中使用PUT方法创建对象

如何在Django中使用PUT方法创建对象
EN

Stack Overflow用户
提问于 2020-03-19 19:37:37
回答 2查看 406关注 0票数 0

如果Django Rest框架中特定id上没有可用的对象,如何使用PUT方法在该id上创建对象?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-19 21:34:02

你可以试试update_or_create()

例如:

代码语言:javascript
运行
复制
class YourAPIView(APIView):

    def put(self, request, **kwargs):
        serializer = YourSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        obj, created = YourModel.objects.update_or_create(
        id=kwargs['id'],
        defaults=serializer.validated_data)
        return Response()
票数 0
EN

Stack Overflow用户

发布于 2020-03-20 02:28:28

对于一个不存在的对象的PUT请求,RESTFUL API应该会出错。这个想法是,如果它曾经存在于某个点来创建id,那么它已经被删除了。删除它比重新创建它更有意义。

如果id是自动生成的,这一点尤其正确。更重要的是,如果它是一个自动递增的整数id,就像Django模型的默认id一样。如果要在这种情况下支持此功能,用户将使用表尚未递增的id创建数据实例potentially leading to errors like this.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60756429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档