Как изменить статус участника с активного на истекший после даты окончания подписки в 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