python - TypeError: perform_create() does not have 1 required positional argument'serializer' 我收到这样的错误
问题描述
视图.py
from rest_framework import viewsets, permissions, generics, serializers
from .serializers import PlayerSerializer
from .models import PlayerList
from rest_framework.response import Response
class PostPlayer(generics.ListCreateAPIView):
queryset = PlayerList.objects.all().order_by('-d_code')
serializer_class = PlayerListSerializer
def perform_create(self, request, serializer):
d_code = request.data.get('h_code') + 'test'
#do something with d_code
new_code = d_code + 'someSampleValue'
serializer.save(d_code=new_code)
TypeError: perform_create() doesn't have 1 required positional argument'serializer' 我收到这样的错误。
知道为什么我会收到此错误吗?
让我知道我现在缺少什么。
解决方案
改变你的perform_create(...)
方法,
class PostPlayer(generics.ListCreateAPIView):
queryset = PlayerList.objects.all().order_by('-d_code')
serializer_class = PlayerListSerializer
def perform_create(self, serializer):
d_code = self.request.data.get('h_code') + 'test'
# do something with d_code
new_code = d_code + 'someSampleValue'
serializer.save(d_code=new_code)
推荐阅读
- apollo-client - 使用`createMockClient` 测试非反应代码?
- c# - C# 两位小数
- python - shapely.validation.make_valid 与 ValueError 与无效的 LinearRing 崩溃
- javascript - 带缓存的 Javascript 数字计数器
- angular - 角度刷新表(数据源)
- c# - 将我的 Appsettings 部分中的部分绑定到字典
- laravel-5.8 - 如何在 Laravel 表单验证中仅传递数组的有效对象?
- c - 如何从这种输入格式中提取数字?
- virtual-machine - 如何在 VMware Workstation Pro 15.0 中启用 VMware kvm 模式下的共享文件夹
- java - 保存时子实体的外键不加到父实体,一对一