У меня есть модель 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, вписав туда все необходимые поля?