簡體   English   中英

Django 休息框架發布請求未檢索任何內容

[英]Django rest framework post request not retrieving anything

我正在嘗試創建用戶創建 api 並發布創建 api,“獲取”請求工作正常,但發布請求始終為空。 如果有任何我遺漏或需要添加到視圖中的內容,因為 get 請求適用於 post 應用程序。 可能發生的錯誤是什么。

序列化器.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)

無論發布請求如何,我總是收到一條錯誤消息,指出此字段是必需的,

這是錯誤 - 屏幕截圖

誰能幫幫我,謝謝

根據您的屏幕截圖,您使用 POST 請求將數據作為查詢參數發送。 在 Postman 中,您應該將body部分與例如 form-data 選項一起使用。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM