User() получил неожиданный аргумент ключевого слова 'tutors_data'
Как я могу решить эту ошибку User() got an unexpected keyword argument 'tutors_data'
в Django rest-framework и djoser? Я нашел несколько решений, но они не смогли мне помочь
models.py
# Tutoruser Model
class TutorUser(models.Model):
tutor_user = models.OneToOneField(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='tutor_user')
full_name = models.CharField(max_length=255, blank=True)
slug = models.SlugField(max_length=255)
phone_number = models.CharField(max_length=14, blank=True)
profile_img = models.ImageField(upload_to='images/tutor/profile-img', blank=True)
description = models.TextField(blank=True)
serializers.py
class TutorUserSerializer(serializers.ModelSerializer):
class Meta:
model = TutorUser
fields = [
'id',
'full_name',
'phone_number',
'description',
'profile_img',
]
class UserCreateSerializer(UserCreateSerializer):
tutors_data = TutorUserSerializer()
class Meta(UserCreateSerializer.Meta):
model = User
fields = ['id', 'email', 'is_tutor', 'password', 'tutors_data']
def create(self, validated_data):
#create user
tutor_user_data = validated_data.pop('tutors_data')
user = User.objects.create(
email = validated_data['email'],
password = validated_data['password'],
is_tutor = validated_data['is_tutor'],
)
if user.is_tutor:
for tutor_data in tutor_user_data:
TutorUser.objects.create(
tutor_user = user,
**tutor_data,
)
return user
если я заменю tutors_data = TutorUserSerializer()
на tutor_user = TutorUserSerializer()
, то все работает, но выдает другую ошибку Cannot assign "OrderedDict()...: "..." must be a "..." instance
.... и возможно ли получить только одно поле на UserCreateSerializer из TutorUserSerializer?
Заранее спасибо.