@WebDev921

Как обратиться к методу прокси-модели django?

Есть модель юзера:
class User(AbstractBaseUser, PermissionsMixin):

    class Type(models.TextChoices):
        default = 'default', 'Стандартный Пользователь'
        vip = 'vip', 'Вип пользователь'


    email = models.EmailField(_('email address'), unique=True)
    phone = models.CharField(
        verbose_name='Телефон', blank=False, default='', max_length=18)
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField(default=timezone.now)

    type_user = models.CharField(
        'Тип', choices=Type.choices, default=Type.default, max_length=15)


И 2 прокси-модели:
class DefaultUser(User):

    objects = DefaultUserManager()

    def test(self):
        return 1

    class Meta:
        proxy = True

class VipUser(User):

    objects = VipUserManager()

    def test(self):
        return 2

    class Meta:
        proxy = True


Вопрос: как я могу в шаблоне получить результат user.test() в зависимости от типа текущего юзера без доп проверок на тип?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@pyHammer
Антон вы не можете получить наследующий класс из наследуемого. Обратится к методу test вы можете только из инстансов класса DefaultUser или VipUser на не User

P.S.
Где вы видели, чтобы кто-то так делал?
class User(AbstractBaseUser, PermissionsMixin):

    class Type(models.TextChoices):
        default = 'default', 'Стандартный Пользователь'
        vip = 'vip', 'Вип пользователь'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы