gpt4 book ai didi

python - 过期后自动从订阅数据库中删除项目?

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:47 24 4
gpt4 key购买 nike

我正在创建一个网站,用户可以订阅一个月的套餐(与时事通讯订阅 5 美元/月几乎相同)。我如何管理这些订阅包。我是否需要在到期日期后永久删除该项目?什么是最好的方法。

模型.py

class avail_packs(models.Model):
pack_name = models.CharField(max_length=100)
pack_description = models.TextField()
pack_duration_days = models.IntegerField(default=0)
pack_cost = models.IntegerField(default=0)

class selected_packs(models.Model):
user = models.ForeignKey(User)
pack = models.ForeignKey(avail_packs)
activation_date = models.CharField(max_length=100)
quantity = models.IntegerField(default=0)

假设有一包说青铜

pack_name=bronze
pack_description='1000 newsletters'
pack_duration_days=30
pack_cost=9.9$

如果用户激活了一个包

user= User.objects.get(username='suhail')
pack= avail_packs.objects.get(pack_name=bronze)
activation_date= 27-aug-2013
quantity=1

现在我的问题是我想在日期 26-sep-2013 对所选包中的项目做什么?

我需要删除项目吗(从 today-activation_date>29 的 selected_pa​​cks 中删除项目)。

如果我想删除项目,那怎么办?

我是否需要运行 cron(django celery) 并每天检查以删除这些项目。

或者我需要在用户点击新闻时删除该项目(或一些收费项目)

我正在使用 paypal 那么 paypal 中有没有什么方法可以进行这些类型的每月订阅?

最佳答案

为这样一个简单的任务运行 celery 是超大的。看看django management commands并每晚运行一个 cronjob 来停用/删除包。

from optparse import make_option

class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option('--delete',
action='store_true',
dest='delete',
default=False,
help='Delete inactive packages'),
)

def handle(self, *args, **options):

if options['delete']:
selected_packs.objects.filter(activation_date__lt=timeframe).delete()

关于python - 过期后自动从订阅数据库中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com