Django пост фреймворка после запроса ничего не получая - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь создать пользовательский API создания и опубликовать API создания, запрос 'Get' работает нормально, но запрос публикации всегда пуст. Если есть что-то, что я пропустил или нужно добавить к представлениям, потому что запрос 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)

Независимо от запроса на публикацию, я всегда получить сообщение об ошибке, указав, что это поле обязательно для заполнения,

Вот ошибка - скриншот

Кто-нибудь может мне помочь, пожалуйста, Спасибо

1 Ответ

0 голосов
/ 29 января 2020

Согласно вашему скриншоту вы отправляете данные в виде параметров запроса с запросом POST. В Почтальоне вы должны использовать body секцию, например, с опцией данных формы.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...