如何访问DRF服务器端的请求主体模型字段?

2024-10-08 18:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

在android客户端,我向服务器端点发出请求,请求主体为ContactRequest

public class ContactRequest {

    @SerializedName("senderId")
    @Expose
    private int senderId;

    @SerializedName("receiverId")
    @Expose
    private int receiverId;

    public ContactRequest(int senderId, int receiverId) {
        this.senderId = senderId;
        this.receiverId = receiverId;
    }
}

使用Refrivate,我将此对象作为请求主体传递:

@POST("friendship/create-friend-request/")
Call<Void> sendRequest(@Body ContactRequest contactRequest);

在服务器端,我将这个端点映射到CreateFriendRequestView

class CreateFriendRequestView(views.APIView):

    def post(self, request, *args, **kwargs):
        sender = User.objects.get(pk=request.senderId)
        receiver = User.objects.get(pk=request.receiverId)
        Friend.objects.add_friend(sender, receiver)
        return Response({'status': 'Request sent'}, status=201)

但是,当向该端点发出请求并调用视图时,会发生内部服务器错误,状态代码为500。你知道吗

AttributeError: 'Request' object has no attribute 'senderId'

如何引用django rest framework客户端的senderIdreceiverId字段?你知道吗


Tags: 客户端objectsrequest服务器端privatepublicclassint

热门问题