Токен django не создается при регистрации пользователя
Serializers.py
from rest_framework import serializers
from rest_framework.authtoken.models import Token
# User Related Serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.cUser
fields = '__all__'
def create(self, validated_data):
user = models.cUser.objects.create_user(**validated_data)
token = Token.objects.create(user=user)
return user
models.py
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager
class cUserManager(BaseUserManager):
def create_user(self, email, password, **others):
email = self.normalize_email(email)
user = self.model(email=email, **others)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, **others):
others.setdefault('is_staff', True)
others.setdefault('is_superuser', True)
return self.create_user(email, password, **others)
class cUser(PermissionsMixin, AbstractBaseUser):
email = models.EmailField(unique=True)
username = models.CharField(max_length=128, unique=True)
password = models.CharField(max_length=256, unique=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = cUserManager()
Я создаю пользовательского пользователя (cUser) с помощью AbstractBaseUser и хочу создавать токен каждый раз, когда создается новый пользователь (используя модуль rest framework.authToken), но он не работает, что я могу сделать?
Вы можете использовать Django Signals для автоматического создания токенов после создания пользователя.