Неизвестное поле путем переключения стандартного входа на электронную почту

Unknown field(s) (username) specified for Profile. Check fields/fieldsets/exclude attributes of class CustomUserAdmin.

У меня есть вышеупомянутая ошибка, я думаю, это связано с тем, что я переключил электронную почту на логин по умолчанию, поэтому имя пользователя больше не является жизнеспособным. Я использовал readonly_fields=('username',) в admin.py это сработало, но я не уверен почему это работает.

admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .forms import UserProfileForm
from .models import Profile

class CustomUserAdmin(UserAdmin):
    add_form = UserProfileForm
    model = Profile
    list_display=('id','email','password','first_name','last_name','phone_number','is_edit','team')
    ordering = ('email',)
    pass

admin.site.register(Profile, CustomUserAdmin)
##Maybe rework this later for better inclusion of all models.
from django.apps import apps
from django.contrib import admin

class ListAdminMixin(object):
    def __init__(self, model, admin_site):
        self.list_display = [field.name for field in model._meta.fields]
        super(ListAdminMixin, self).__init__(model, admin_site)

models = apps.get_models()
for model in models:
    admin_class = type('AdminClass', (ListAdminMixin, admin.ModelAdmin), {})
    try:
        admin.site.register(model, admin_class)
    except admin.sites.AlreadyRegistered:
        pass

model.py

from django.db import models
from django.contrib.auth.models import AbstractUser
from phonenumber_field.modelfields import PhoneNumberField
import uuid
from .managers import CustomUserManager
class Team(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

class Profile(AbstractUser):
    username = None
    email = models.EmailField('email address', unique=True) # Here
    first_name = models.TextField(max_length=100, blank=True,null=True)
    last_name = models.TextField(max_length=100, blank=True,null=True)
    phone_number = PhoneNumberField(max_length=25, region='US')
    is_edit = models.BooleanField(default=False)
    team = models.ForeignKey(Team,on_delete=models.CASCADE,null=True, blank=True, default = None)
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    objects = CustomUserManager()

    def __str__(self):
        return self.email

Попробуйте использовать models.Charfield(editable=False), у меня как-то без ошибок сработало.

Вернуться на верх