1

ユーザーがパッケージを 1 か月間購読できる Web サイトを作成しています (ニュースレター購読 5 $/月とほとんど同じです)。これらのサブスクリプション パッケージを管理する方法を教えてください。有効期限後にアイテムを完全に削除する必要があるかどうか? 最良の方法は何ですか。

models.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ですか?

アイテムを削除する必要がありますか (selected_pa​​cks where からアイテムを削除しますtoday-activation_date>29)。

アイテムを削除したい場合はどうすればよいですか?

これらのアイテムを削除するには、cron( django celery) を実行して毎日確認する必要がありますか。

または、ユーザーがnewletter(またはいくつかの有料アイテム)をクリックしたときにアイテムを削除する必要がありますか

私はペイパルを使用していますが、ペイパルでこれらの種類の月額購読を行う方法はありますか?

4

1 に答える 1

1

このような単純なタスクのためにセロリを実行すると、サイズが大きくなります。django 管理コマンドを見て、毎晩 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()
于 2013-08-27T06:34:55.160 に答える