类型错误:parse() 缺少 1 个必需的位置参数:'stream'
Posted
技术标签:
【中文标题】类型错误:parse() 缺少 1 个必需的位置参数:\'stream\'【英文标题】: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
【问题讨论】:
请在问题中显示完整的回溯 【参考方案1】:JSONParser
应该被实例化。 parse
方法是普通 方法,而不是类方法。所以你需要一个实例让它工作:
JSONParser().parse(request) # Instead of JSONParser.parse(request)
【讨论】:
以上是关于类型错误:parse() 缺少 1 个必需的位置参数:'stream'的主要内容,如果未能解决你的问题,请参考以下文章
类型错误:预测()缺少 1 个必需的位置参数:'params'
类型错误:预测()缺少 1 个必需的位置参数:'y_train'