3

以下のモデルのdjangoアプリがあります

Class Promotion(models.Model):
    name = models.CharField(max_length=256)
    start_date = models.DateTimeField()
    end_date = models.DateTimeField()

そのため、プロモーション レコードの作成中に と を設定start dateします。したがって、が よりも大きいend date場合のすべての機能は、レコードがデータベースから自動的に削除されるか、メールが送信されます... . したがって、ある種のこれらの状況。current dateend date

ですから、これらの状況に対処する方法を教えてください。つまり、現在の日付がプロモーションの日付よりも大きい場合、何かをすることを意味します........

4

2 に答える 2

2

「期限切れ」のレコード、つまり経過したレコードを削除する管理コマンドを実装します。次に、スケジュールされたタスク、Ubuntu (および Unix フレーバー システム)のcron ジョブが、 で指定したスケジュール(この場合は少なくとも 1 日 1 回) で管理コマンドを呼び出します。Promotionend_datecrontab

celery編集: または、 「期間タスク」を使用してスケジュールされたタスクを実行することもできます。 docs here .

于 2013-10-31T19:59:47.823 に答える
0

pre_save シグナル チェックを使用して、新しいレコードを入力する前に日付をチェックします。

https://docs.djangoproject.com/en/dev/topics/signals/

于 2013-10-31T19:59:35.620 に答える