Ошибка __str__ возвращает нестроку (тип NoneType) при попытке сохранения в меню администратора Django
Я создал пользовательскую модель пользователя для своего проекта. Я использую python-social-auth для входа пользователя в систему. Вход в систему и получение данных пользователя в базу данных работает нормально, но когда я перехожу в панель администратора, чтобы изменить что-то вручную, я получаю эту ошибку. Даже если я ничего не меняю и просто нажимаю сохранить, я получаю то же самое.
Почему это происходит?
Models.py
from django.db import models
from django.conf import settings
from django.contrib.auth.models import AbstractUser
from .managers import CustomUserManager
# Create your models here.
class CustomUser(AbstractUser):
username = models.CharField(max_length=32, blank=True, null=True)
name = models.CharField(max_length=200, unique=True)
steam_id = models.CharField(max_length=17, unique=True, blank=True, null=True, db_column='steam_id')
player = models.TextField(null=True)
user_coins = models.FloatField(default=0.00)
is_active = models.BooleanField(default=True, db_column='status')
is_staff = models.BooleanField(default=False, db_column='isstaff')
is_superuser = models.BooleanField(default=False, db_column='issuperuser')
USERNAME_FIELD = "name"
REQUIRED_FIELDS = []
objects = CustomUserManager()
def has_perm(self, perm, obj=None):
return self.is_superuser
def has_module_perms(self, app_label):
return self.is_superuser
это потому, что вы не определили метод __str__() в вашей модели CustomUser
в вашем случае с моделью Customuser, return self.username
IMO при использовании django-admin __str__() метод ОБЯЗАТЕЛЕН в любой модели для наглядности
читайте больше здесь : https://docs.djangoproject.com/en/4.0/ref/models/instances/#str

