@PenguinVasily

Django. Как изменять поле модели при определенном событии?

У меня есть модель Account, которая отражает аккаунт пользователя.
class Account(models.Model):
    ACCOUNT_TYPE_CHOICES = [
        ('CLIENT', 'Клиент'),
        ('EMPLOYEE', 'Сотрудник')
    ]

    ACCOUNT_STATUS_CHOICES = [
        ('BR', 'Бронза'),
        ('SR', 'Серебро'),
        ('GL', 'Золото'),
        ('PL', 'Платина')
    ]

    user = models.ForeignKey(User, verbose_name='Пользователь', on_delete=models.CASCADE)
    type = models.CharField(max_length=8, choices=ACCOUNT_TYPE_CHOICES, default='CLIENT')
    balance = models.DecimalField(verbose_name='Баланс')
    level = models.IntegerField(verbose_name='Уровень', default=1)
    status = models.CharField(max_length=2, choices=ACCOUNT_STATUS_CHOICES, default='BR')


Мне необходимо изменять статус аккаунта, при достижении определенного уровня. Например:
  • уровень 1 - "Бронза"
  • уровень 2 - "Серебро"
  • уровень 3 - "Золото"
  • уровень 4 - "Платина"


Как я могу это сделать и где мне необходимо реализовывать эту логику?

Дополнительный вопрос: Я хочу сделать регистрацию/авторизацию пользователей. Насколько приемлемо описывать поле user в модели Account? Может лучше расширить модель User, вписав туда все необходимые поля?
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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