Django クラスTemplateViewを使った処理でif文を関数に
Python歴一か月
仮に
ToDoリストのタスク完了画面を想定
ブラウザの一つの画面から3つのボタンが用意されてる。
ボタン3つ処理が異なる。
1つめのボタン
選択された完了タスクをToDoリストに戻す。
2つめのボタン
選択された完了タスクをDB上から削除。
3つめのボタン
完了タスクをすべてDBから削除
現在のコード
class task_end(TemplateView):
""" タスク完了画面"""
def get(self,request):
省略
def post(self, request):
"""各POSTからのボタンに対する処理"""
# 完了したタスクを ToDoリストに戻す
if 'task_in' in request.POST:
tasks = task.objects.get(id=request.POST['id'])
tasks.status = False
tasks.save()
# 完了したタスクを1件をDBから削除
elif 'task_delete' in request.POST:
tasks = task.objects.get(id=request.POST['id'])
tasks.delete()
# 完了したタスクのリスト全てを削除
elif 'task_all_delete' in request.POST:
tasks = task.objects.all().filter(users=request.session['u_s_id'], status=True)
tasks.delete()
return redirect('task_end')
この場合ブラウザからのPOST処理に対して、if文で処理を分岐しています。
実際ブラックボックスで動かすと問題はないのですが、本当にこのような分岐方法でいいのか?
他に間違いなくいい方法があると思います。
もしよろしければアドバイス等よろしくお願いします。