如何使用PUT方法在Django中创建对象
How to use PUT method to create object in Django
如果没有对象可用,如何使用 PUT 方法在特定 ID 上创建对象
在 Django Rest Framework 中的那个 id 上?
你可以试试update_or_create()
例如:
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()
A RESTFUL API 对不存在的对象的 PUT 请求应该出错。这个想法是,如果它曾经存在于创建 id,那么它已经被删除了。删除它比重新创建它更有意义。
如果 ID 是自动生成的,则尤其如此。如果它是像 Django 模型的默认 id 这样的自动递增整数 id,则更是如此。如果您在这种情况下支持此功能,则用户将创建一个数据实例,其 ID 为 table 尚未增加 potentially leading to errors like this.
如果没有对象可用,如何使用 PUT 方法在特定 ID 上创建对象 在 Django Rest Framework 中的那个 id 上?
你可以试试update_or_create()
例如:
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()
A RESTFUL API 对不存在的对象的 PUT 请求应该出错。这个想法是,如果它曾经存在于创建 id,那么它已经被删除了。删除它比重新创建它更有意义。
如果 ID 是自动生成的,则尤其如此。如果它是像 Django 模型的默认 id 这样的自动递增整数 id,则更是如此。如果您在这种情况下支持此功能,则用户将创建一个数据实例,其 ID 为 table 尚未增加 potentially leading to errors like this.