Я использую TokenTokenAuthentication для создания токена для каждого создаваемого пользователя. Я использую пользовательскую модель (Utilisateur) и AUTH_USER_MODEL. Для модели требуется поле set_password, и, судя по тому, что я видел в Интернете, я установил для него значение None, я попытался установить значение по умолчанию, но продолжаю получать ту же ошибку, когда пытаюсь подключиться к странице администратора django, чтобы убедиться, что токены фактически создаются для каждого нового пользователя через таблицу Token. Может ли кто-нибудь помочь мне определить правильную конфигурацию, потому что токен не создан.
Ошибка: Объект «NoneType» не вызывается при попытке подключения на страницу django администратора введите описание изображения здесь
Код models.py
from django.contrib.auth.models import UserManager
class Utilisateur(models.Model):
id = models.BigAutoField(primary_key=True)
matricule = models.CharField(unique=True, max_length=5, blank=True, null=True)
user_name = models.CharField(unique=True, max_length=30, blank=True, null=True)
password = models.CharField(max_length=30, blank=True, null=True)
nom = models.CharField(max_length=20, blank=True, null=True)
prenom = models.CharField(max_length=20, blank=True, null=True)
tel = models.CharField(unique=True, max_length=10, blank=True, null=True)
email = models.CharField(unique=True, max_length=300, blank=True, null=True)
fonction = models.CharField(max_length=50)
entreprise = models.CharField(max_length=20, blank=True, null=True)
id_type_utilisateur = models.ForeignKey(TypeUtilisateur, models.DO_NOTHING, db_column='id_type_utilisateur')
id_site = models.ForeignKey(Site, models.DO_NOTHING, db_column='id_site')
REQUIRED_FIELDS = ['password']
USERNAME_FIELD = 'user_name'
is_anonymous = False
is_authenticated = False
is_active = False
set_password = None
objects = UserManager()
class Meta:
managed = False
db_table = 'utilisateur'
код файла signal.py
from django.conf import settings
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
print("AUTHENTIFICATION")
Token.objects.create(user=instance)
и файл settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'Dashboard',
'frontend',
'rest_framework.authtoken',
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
]
}
AUTH_USER_MODEL = 'Dashboard.Utilisateur'