如何通过 post 方法在 django-restful-framework 中创建新对象?

how can make new object in django-restful-framework by post method?

我有这个型号

class Product(models.Model):
    name = models.CharField(max_length=50)
    price = models.PositiveIntegerField()

我想在 django 的 restframework 中使用 post 方法创建一个新对象,但我不知道该怎么做,请帮助我

@api_view(['POST'])
def create_product(request):
    *******
    return Response({
        *******
    }, status=status.HTTP_201_CREATED)

我应该用 **** 替换 django 代码请帮助我

简单易行。主要类似于在 python.

中创建新 class 对象的方式
@api_view(['POST'])
def create_product(request):
    p = Product(name='sth', price=1)
    p.save()
    return Response({
         # um... now we should start talking about serializers.
    }, status=status.HTTP_201_CREATED)

请注意方法 save() 不会 return 创建的对象,因此如果您需要创建的对象,只需遵循模式即可。

据我所知,发送模型对象作为响应(或者甚至根据请求获取对象数据)的最佳方式是使用序列化器。 Serilizer 通俗的说就是改变数据的格式。在 django 中,我们可以使用 serilizers 作为将模型对象转换为 json 的工具。 (如果您不熟悉 json 数据格式,它就像一本字典,既易于阅读又易于编程处理。) 当然,您也可以像这样创建自己的 json 数据(或字典):

data = {}
data['name'] = p.name
return Respond(data=data, 
status=status.HTTP_201_CREATED)

但何必呢?

这里是 link 到 drf 的序列化器纪录片: https://www.django-rest-framework.org/api-guide/serializers/

尽情享受吧!