Неизвестное поле (поля) (имя пользователя) указано для Account. Проверьте поля/наборы полей/исключите атрибуты класса AccountAdmin

Я потратил несколько часов на то, чтобы выяснить, как исправить эту ошибку, но не могу понять, как это сделать? Я указал различные поля.

Это происходит, когда я нахожусь в панели администратора и пытаюсь добавить новый аккаунт - SNI работает нормально. Я не понимаю. Я что-то упустил? Я установил поле пользователя тоже

Модель

from asyncio import FastChildWatcher
import email
from pyexpat import model
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager

class userCouncil(BaseUserManager):

    def create_user(self, userID, password=None):
        if not email:
            raise ValueError("Email is required")
        user = self.model(userID = self.normalize_email(userID))
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, userID, password):
        user = self.model(userID = self.normalize_email(userID))
        user.set_password(password)
        user.is_staff = True
        user.is_admin = True
        user.save(using=self._db)
        return user
             

class sni(models.Model):
    SNI = models.CharField(max_length=10, primary_key=True)
    # USERNAME_FIELD = 'SNI'

    def __str__(self):
        return self.SNI

class Account(AbstractBaseUser):
    userID = models.EmailField(max_length=80, unique=True)
    name = models.CharField(max_length=100)
    dateOfBirth = models.DateField(max_length=8, null=True)
    homeAddress = models.CharField(max_length=100, null=True)
    is_staff = models.BooleanField(default=False)
    is_admin = models.BooleanField(default=False)
    sni = models.OneToOneField(sni, on_delete=models.CASCADE, null=True, blank=True)

    USERNAME_FIELD = 'userID'

    objects = userCouncil()

    def __str__(self):
        return self.userID


    def has_perm(self, perm, obj=None):
        return self.is_admin

    def has_module_perms(self, app_label):
        return True

Admin

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

from .models import Account, sni


class AccountAdmin(UserAdmin):
    ordering = ['userID']
    list_display = ('userID', 'is_staff', 'is_admin')
    search_fields = ['userID']
    readonly_fields = ('id','userID')

    filter_horizontal = ()
    list_filter = ()
    fieldsets = ()


admin.site.register(sni)
admin.site.register(Account, AccountAdmin)
Вернуться на верх