Django save()缺少1个必需的位置参数:';自我';

Django save()缺少1个必需的位置参数:';自我';,django,django-rest-framework,Django,Django Rest Framework,我正在使用django rest框架注册和登录。我收到这个错误save()缺少1个必需的位置参数:“self” 这是我的serializers.py class clientnameSerializer(serializers.ModelSerializer): password2 = serializers.CharField(style={'input_type': 'password'}, write_only=True) class Meta: model

我正在使用django rest框架注册和登录。我收到这个错误save()缺少1个必需的位置参数:“self”

这是我的serializers.py

class clientnameSerializer(serializers.ModelSerializer):
    password2 = serializers.CharField(style={'input_type': 'password'}, write_only=True)
    class Meta:
        model = clientname
        fields = ('id','username','password', 'password2' , 'email')
        ordering = ['id',]
        extra_kwargs = {
          'password': {'write_only': True}
        }
    def save(self):
      account = clientname(
        email=self.validated_data['email'],
        username=self.validated_data['username']
      )
      password = self.validated_data['password'],
      password2 = self.validated_data['password2']
      
      if password != password2:
        raise serializers.ValidationError({'password': 'Passwords must match.'})
      account.set_password(password)
      account.save()
      return account
如您所见,我的序列化程序中有“account.save()”,因为当您必须重写save方法时,这一点非常重要

这是我的观点

@api_view(['POST'])
def registration_view(request):
  if request.method == 'POST':
    serializer = clientnameSerializer(data=request.data)
    data={}
    if serializer.is_valid():
      account = clientname.save()
      data['response'] = "successfully registered a new user."
      data['email'] = account.email
      data['username'] = account.username
    else:
      data = serializer.errors
    return Response(data)
这是我在尝试注册帐户时遇到的错误

Exception Value: save() missing 1 required positional argument: 'self'
这是完整的回溯

回溯:

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
  54.         return view_func(*args, **kwargs)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/django/views/generic/base.py" in view
  71.             return self.dispatch(request, *args, **kwargs)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  505.             response = self.handle_exception(exc)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
  465.             self.raise_uncaught_exception(exc)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/rest_framework/views.py" in raise_uncaught_exception
  476.         raise exc

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  502.             response = handler(request, *args, **kwargs)

File "/home/schoolsite/schoolsitedir/env/lib/python3.6/site-packages/rest_framework/decorators.py" in handler
  50.             return func(*args, **kwargs)

File "/home/schoolsite/schoolsitedir/Homepage/api/views.py" in registration_view
  25.       account = clientname.save()
这毫无意义。您可能想要:

account = serializer.save()

在前端应用程序中验证password1==password2,以便只提交密码,怎么样。因为这是REST API,您可能只是想在某个时候使用这两个密码传递数据。

以下哪行会引发该错误?请也发布整个回溯。@deceze我更新我的问题,请参见和
clientname
是一个模型类吗?那么您希望
clientname.save()
做什么呢?是的,客户端名称是一个模型类,要保存在我的数据库中,我将clientname.save()放入数据库@deceze中,为了将数据保存到我的数据库中,我应该做些什么来解决我的问题?
account = serializer.save()