Django rest框架发布请求未检索到任何内容

问题描述 投票:0回答:1

我正在尝试创建用户创建api并发布创建api,“获取”请求工作正常,但发布请求始终为空。如果有任何我想错过的事情或需要添加到视图中的事情,因为get请求对于后置应用程序工作正常。可能发生的错误是什么?

Serializer.py


from rest_framework import serializers
from .models import User


class RegisterSerializer(serializers.ModelSerializer):
    password2 = serializers.CharField(
        style={'input_type': 'password'}, write_only=True)

    class Meta:
        model = User
        fields = ['username', 'email',
                  'date_of_birth', 'password', 'password2']
        extra_kwargs = {'password': {'write_only': True}}

    def save(self):
        print("saved")
        user = User(email=self.validated_data['email'],
                    username=self.validated_data['username'],
                    date_of_birth=self.validated_data['date_of_birth']
                    )
        password = self.validated_data['password']
        password2 = self.validated_data['password2']
        if password != password2:
            raise serializers.ValidationError(
                {'password': 'Passwords must match.'})
        user.set_password(password)
        user.save()
        return user

下面是views.py

from rest_framework import status
from rest_framework.response import Response
from rest_framework.decorators import api_view
from .models import User
from .serializers import RegisterSerializer
from rest_framework.authtoken.models import Token
from rest_framework.parsers import JSONParser


@api_view(['POST', ])
def registration_view(request):
    if request.method == 'POST':
        serializer = RegisterSerializer(data=request.data)

        data = {}
        if serializer.is_valid():
            print("Hello")
            user = serializer.save()
            data['response'] = 'Successfuly registered a new User'
            data['date_of_birth'] = user.date_of_birth
            data['username'] = user.username
            data['email'] = user.email
            token = Token.objects.get(user=user)
            data['token'] = token
            return Response(data)
        else:
            return Response(serializer.errors)

无论发布请求,我总是会收到一条错误消息,指出必须填写此字段,

Here is the error -- screenshot

有人可以帮我吗,谢谢

python django post httprequest
1个回答
0
投票

根据您的屏幕截图,您正在通过POST请求将数据作为查询参数发送。在邮递员中,应将body部分与例如form-data选项一起使用。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.