【问题标题】:TypeError: parse() missing 1 required positional argument: 'stream'类型错误:parse() 缺少 1 个必需的位置参数:'stream'
【发布时间】:2021-08-05 23:35:31
【问题描述】:
from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
from rest_framework import serializers
from rest_framework import parsers
from rest_framework.parsers import JSONParser
from .models import Article
from .serializer import Articleserializer
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
# Create your views here.
def artical_list(request):
    if request.method=='GET':
        article= Article.objects.all()
        serializer=Articleserializer(article,many=True)
        return JsonResponse(serializer.data,safe=False)
    elif request.method=='POST':
        data=JSONParser.parse(request)
        serializer=Articleserializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data,status=201)
        return JsonResponse(serializer.errors, status=400)

这是我的序列化程序类 从 django.db.models 导入字段 从 rest_framework 导入序列化程序 从 .models 导入文章

class Articleserializer(serializers.ModelSerializer):
    class Meta:
        model=Article
        fields= ['id','title','author']  

这是我的模型类

from django.db import models

# Create your models here.
class Article(models.Model):
    title=models.CharField(max_length=50)
    author=models.CharField(max_length=100)
    email=models.EmailField(max_length=100)
    date=models.DateTimeField(auto_now_add=True)

    
   

def __str__(self):
    return self.title 

当我使用邮递员发布数据时出现此错误,请帮助我 django rest framwork is

【问题讨论】:

  • 请在问题中显示完整的回溯

标签: python-3.x django-models django-rest-framework django-forms django-templates


【解决方案1】:

JSONParser 应该被实例化。 parse 方法是普通 方法,而不是类方法。所以你需要一个实例让它工作:

JSONParser().parse(request)  # Instead of JSONParser.parse(request)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2018-09-12
    • 2021-08-05
    • 2021-07-06
    • 2017-07-23
    • 2020-12-11
    相关资源
    最近更新 更多