Почему при регистрации возвращается только username и email?
Всем привет, столкнулся с такой проблемой что мой сериализатор RegisterSerializer после метода create() возвращает только username и email.
Вот мой сериализатор:
class RegisterSerializer(serializers.ModelSerializer):
email = serializers.EmailField(
required=True,
validators=[UniqueValidator(queryset=User.objects.all())]
)
password = serializers.CharField(
write_only=True, required=True, validators=[validate_password])
password2 = serializers.CharField(write_only=True, required=True)
class Meta:
model = User
fields = ('username', 'password', 'password2',
'email',)
def validate(self, attrs):
if attrs['password'] != attrs['password2']:
raise serializers.ValidationError(
{"password": "Password fields didn't match."})
return attrs
def create(self, validated_data):
user = User.objects.create(
username=validated_data['username'],
email=validated_data['email'],
is_active=False
)
user.set_password(validated_data['password'])
user.save()
code = random.randint(11111111, 99999999)
code_r = f'confirm_email/?activation_id={code}&user_id={user.id}'
url = f'http://26.21.163.167:3000/{code_r}'
userprof = userProfile.objects.create(
user=user,
)
email_receiver = User.objects.get(id = user.id).email
subject = 'С успешной регистрацией!'
body = f"Четотам четотма четотам вот ваша ссылка {url} переходи и регайся"
EmailSend(email_sender=EMAIL_SENDER, passw=EMAIL_PASS, email_receiver=email_receiver, body=body, subject=subject)
userprof.save()
return {'username': user.username, 'email': user.email, 'user_id':user.pk, 'url': code_r}
и при выполнении регистрации он мне должен вернуть то что в return, но он возвращает вот это:
{
"username": "kuanan",
"email": "kuanan@mail.ru"
}
А должно быть что-то по типу такого:
{
"username": "kuanan",
"email": "kuanan@mail.ru",
"url": "какой то url",
"user_id": 1,
}
Источник: Stack Overflow на русском