Нет, вам понадобится что-то вроде сельдерея , чтобы определить задачу, которая фильтрует конец приостановки.
Альтернативный метод, который я предпочитаю, состоит в замене поля suspended
свойством, поскольку наличие поля, в котором хранится «пользователь приостановлен», и поля, в котором хранится «когда пользователь больше не приостанавливается», являются избыточными, поскольку мы знать текущую дату.
Более идиоматично будет называть это is_suspended
, поэтому:
class Profile(models.Model):
...
@property
def is_suspended(self):
return date.today() < self.end_suspension_date
Затем при проверке прав доступа для входа в систему и т. Д. Просто получите доступ profile.is_suspended
.
Простое лучше, чем сложное:)
Алди, остерегайтесь часовых поясов. Основное правило: хранить дату UTC вместо локальной даты.