user()得到一个意外的关键字参数“firstname”

kzmpq1sx  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(506)

你好,我正在创建一个要注册的api,但是我收到了这个错误

  1. User() got an unexpected keyword argument 'firstname'

我尝试了很多方法,但都无法修复,如果有人能帮我修复,我将不胜感激。我的代码:

  1. from rest_framework import serializers
  2. from django.contrib.auth.models import User
  3. from django.contrib.auth import get_user_model
  4. User = get_user_model()
  5. # User Serializer
  6. class UserSerializer(serializers.ModelSerializer):
  7. class Meta:
  8. model = User
  9. fields = ('id', 'first_name', 'last_name' ,'username', 'email', 'is_business')
  10. # Register Serializer
  11. class RegisterSerializer(serializers.ModelSerializer):
  12. class Meta:
  13. model = User
  14. fields = ('id','first_name' ,'last_name' , 'username', 'brand', 'email', 'is_business', 'password')
  15. extra_kwargs = {'password': {'write_only': True}}
  16. def create(self, validated_data):
  17. user = User.objects.create_user(validated_data['username'],
  18. firstname=validated_data['first_name'],
  19. lastname=validated_data['last_name'],
  20. brand=validated_data['brand'],
  21. email=validated_data['email'],
  22. password=validated_data['password'])
  23. return user
w9apscun

w9apscun1#

你打电话给我的是 firstname= 而不是 first_name= 这可能是根本原因
试试像这样的东西

  1. def create(self, validated_data):
  2. user = User.objects.create_user(validated_data['username'],
  3. first_name=validated_data['first_name'],
  4. last_name=validated_data['last_name'],
  5. brand=validated_data['brand'],
  6. email=validated_data['email'],
  7. password=validated_data['password'])
  8. return user

相关问题