-1

This is my serializer file for updating the default UserCreateSerializer of djoser.

from djoser.serializers import UserCreateSerializer as BaseUserCreateSerializer, UserSerializer as BaseUserSerializer

class UserCreateSerializer(BaseUserCreateSerializer):
    # token = (What logic should i apply here to get the token of the user i am going to register.)
    class Meta(BaseUserCreateSerializer.Meta):
        fields = ['id', 'username', 'password', 'email', 'first_name', 'last_name', 'token']

I saw this question but did'nt understand anything please help me to implement this.

1 Answers1

0

I found the solution.

from djoser.serializers import UserCreateSerializer as BaseUserCreateSerializer, \
UserSerializer as BaseUserSerializer
from rest_framework_simplejwt.tokens import RefreshToken
from rest_framework import serializers


class UserCreateSerializer(BaseUserCreateSerializer):
    token = serializers.SerializerMethodField(method_name='get_token')
    class Meta(BaseUserCreateSerializer.Meta):
        fields = ['id', 'username', 'password', 'email', 'first_name', 'last_name', 'token']

    def get_token(self, user):
        refresh = RefreshToken.for_user(user)
        return {
            'refresh': str(refresh),
            'access': str(refresh.access_token),
        }