Как дать пользователям возможность бесплатно считать дни, после чего они должны платить?

Я пытаюсь сделать так, чтобы пользователи Type Manager могли бесплатно пользоваться, например, 4 дня, после чего они должны заплатить, чтобы получить доступ к некоторым функциям. Я пробовал так

    class CustomUser(AbstractUser):
    territorial=models.CharField(max_length=80)
    phone_number=models.CharField(max_length=15)
    is_real=models.BooleanField(default=False)
    is_resident=models.BooleanField(default=False)
    is_manager=models.BooleanField(default=False)
    

    def __str__(self) :
        return self.username
    def fullname(self):
        return f'{self.first_name} {self.last_name}'


class Manager(models.Model):
    user=models.OneToOneField(CustomUser,on_delete=models.CASCADE,related_name='manager')
    village_name=models.CharField(max_length=60)
    manimg=models.ImageField(blank=True,null=True)
    is_has_dwar=models.BooleanField(default=False)
    is_subscribed=models.BooleanField(default=False)
    created_at=models.DateTimeField(auto_now_add=True,blank=True,null=True)
    def __str__(self):
        return self.user.username
    
    
    def save(self,*args, **kwargs):
       
            two_days_later = timezone.now()  + timedelta(minutes=5)
            if timezone.now() >= two_days_later:
                self.is_subscribed = False
            else:
                self.is_subscribed=True
            super().save(*args, **kwargs)

Я также пробовал это

   @receiver(post_save, sender=CustomUser)
def set_manager_subscription(sender, instance, created, **kwargs):
    if created and instance.is_manager:
        manager = instance.manager
        manager.is_subscribed = True
        manager.save()

        # Set is_subscribed back to False after two days
        two_days_later = manager.created_at + timezone.timedelta(days=2)
        if timezone.now() > two_days_later:
            manager.is_subscribed = False
            manager.save()

но безрезультатно поэтому, пожалуйста, если у вас есть какие-либо решения или вы справились с этим, напишите об этом ниже и объясните, как это работает, заранее спасибо

Вернуться на верх