Как дать пользователям возможность бесплатно считать дни, после чего они должны платить?
Я пытаюсь сделать так, чтобы пользователи 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()
но безрезультатно поэтому, пожалуйста, если у вас есть какие-либо решения или вы справились с этим, напишите об этом ниже и объясните, как это работает, заранее спасибо