私はユーザーがイベントを作成し、イベントが発生する日付を指定する小さなアプリケーションを書いています。イベントの日付が過ぎた後、そのイベントのインスタンスを削除します。私の現在の試みは、イベントページビューでイベントが期限切れになるかどうかをチェックする関数を投げています。私は、expiration_check関数が正しい方法でチェックしているかどうか確かではありません。また、ビュー内の関数を持つだけでイベントが機能するかどうかは確かではありません。提出された特定の日付の後にDjangoモデルのインスタンスを削除する最も良い方法
def event_page(request, name):
event = Event.objects.get(name=name)
check_expiration(event)
if request.method == "POST":
form = GuestForm(request.POST)
if form.is_valid():
Guest = form.save(commit=False)
Guest.event = event
Guest.save()
return redirect(event)
else:
form = GuestForm()
return render(request, "event_page.html", {"form": form, "event": event, })
def check_expiration(event):
now = datetime.datetime.now()
if event.date < now: #if the event date has past
event.delete()
私は、ユーザーからの日付を収集したDateTimeに格納します:ここで
が私の見解で、機能を有効期限が切れる日付= models.DateFieldを()
があれば、私に教えてくださいさらなる詳細が必要です。どんな洞察もありがとう、ありがとう!
誰かがイベントページを閲覧したかどうかを期限切れにした直後に、そのイベントを削除するつもりはありますか? –
あなたの 'check_expiration'関数はうまくいますが、' event_page'関数で呼び出すと、期限切れのイベントはユーザが 'event_page'をロードするまで保持されます(ユーザーの流れを想像してください;おそらくかなり混乱します)。別のアプローチについては以下を参照してください。 – supervacuo