在模型字段中获取<django.db.models.query_utils.DeferredAttribute 对象0x7fca8f1d3d50>而不是实际值



在下面的代码中,我创建了一个端点来在数据库中创建用户。

class ClientViewSet(viewsets.ModelViewSet):
serializer_class = ClientSerializer
queryset = Clients.objects.all()
@action(detail=True, methods=["POST"])
def create_client(self, request, pk=None):
Clients.objects.create(client_id=pk, username=Clients.username, password=Clients.password, first_name=Clients.first_name, last_name=Clients.last_name, address=Clients.address)
return Response("User Created", status= status.HTTP_200_OK)

这确实在模型中创建了一个实例,但每个字段都包含类似于"的文本<django.db.models.query_utils.DeferredAttribute对象位于0x7fca8f1d3d50>quot;而不是实际值。我使用Postman作为一个工具,这就是我创建这个实例的方式,如果我只是在url上使用"Post"方法的话/客户端/而不是/client/pk/create_client/it返回正确的值。

我找到了一个解决方案。

将变量分配给输入数据的主体字段,然后在"创建"中替换它:

@action(detail=True, methods=["POST"])
def create_client(self, request, pk=None):
username = request.data['username']
password = request.data['password']
first_name = request.data['first_name']
last_name = request.data['last_name']
address = request.data['address']
Clients.objects.create(client_id=pk, username=username, password=password, first_name=first_name, last_name=last_name, address=address)
return Response("User Created", status= status.HTTP_200_OK)

最新更新