Django (прокси и абстрактный) добавляет дополнительные поля в дочерний класс пользовательского класса (AbstrsactBaseUser)
Я создал пользовательский класс пользователя, который наследуется от AbstractBaseUser, у этого класса есть класс chil. Проблема в том, что я не могу добавить новые поля в дочерние классы, потому что они имеют (class Meta: proxy = Ture). Появляется следующая ошибка: ?: (models.E017) Proxy model 'StudentUser' contains model fields.
user_model.py
class AppUser(AbstractBaseUser, PermissionsMixin):
objects = MyUserManager()
username = models.CharField(max_length=128)
email = models.EmailField(max_length=64, unique=True)
.
.
.
class StudentUser(AppUser):
objects = StudentManager()
GPA = models.DecimalField(max_digits=4,decimal_places=2) #This causes the error if proxy=True
class Meta:
proxy = True
def save(self, *args, **kwargs):
self.password = make_password(self.password)
return super().save(*args, **kwargs)
sittings.py
INSTALLED_APPS = [
.
.
.
"app",
]
AUTH_USER_MODEL = "app.AppUser
admin.py
admin.site.register(AppUser)
admin.site.register(StudentUser)
Когда я удаляю (proxy = True) из дочернего объекта и добавляю (abstract = True) в родительский, появляется следующая ошибка: django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'app.AppUser' that has not been installed
user_model.py
class AppUser(AbstractBaseUser, PermissionsMixin):
objects = MyUserManager()
class Meta:
abstract = True
username = models.CharField(max_length=128)
email = models.EmailField(max_length=64, unique=True)
.
.
.
class StudentUser(AppUser):
objects = StudentManager()
GPA = models.DecimalField(max_digits=4,decimal_places=2)
def save(self, *args, **kwargs):
self.password = make_password(self.password)
return super().save(*args, **kwargs)
Как я могу расширить AppUser и добавить поля в дочернюю модель, сохранив AppUser в качестве модели пользователя AUTH_USER_MODEL = "app.AppUser
?
Сработало, я удалил класс Meta как для прокси, так и для абстрактного