Как изменить статус участника с активного на истекший после даты окончания подписки в django

После истечения срока действия я хотел бы изменить статус подписки на неактивный. Каким способом лучше всего этого добиться.

Мои модели подписки следующие:

class Subscription(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    membership = models.ForeignKey(Membership, on_delete=models.SET_NULL, null=True)
    start_date = models.DateTimeField(_('Start Date'), null=True, blank=True)
    expiry_date = models.DateTimeField(_('Expiry Date'), null=True, blank=True)
    token = models.TextField(_('Token'), max_length=100, null=True, blank=True)
    active = models.BooleanField(_('Active'), default=False)

Спасибо!

используйте этот метод на вашей модели:

def check_status(self):
    now = timezone.now()
    if now > self.expiry_date and self.active:
        self.active = False
        self.save()
        return False
    return self.active

и в вашем представлении, когда вы хотите проверить статус подписки, вы просто проверяете check_status:

user.subscription.check_status
Вернуться на верх