

Python歴一か月

仮に

ToDoリストのタスク完了画面を想定  
ブラウザの一つの画面から３つのボタンが用意されてる。  
ボタン３つ処理が異なる。  
１つめのボタン  
選択された完了タスクをToDoリストに戻す。  
２つめのボタン  
選択された完了タスクをDB上から削除。  
３つめのボタン  
完了タスクをすべてDBから削除  
現在のコード

[code]

    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')
    
[/code]

この場合ブラウザからのPOST処理に対して、if文で処理を分岐しています。  
実際ブラックボックスで動かすと問題はないのですが、本当にこのような分岐方法でいいのか？

他に間違いなくいい方法があると思います。  
もしよろしければアドバイス等よろしくお願いします。


CC BY-SA 4.0
2018-11-02T08:34:00.733
49891
2018-11-02T08:40:22.263
2018-11-02T08:40:22.263
30813
30813
question
python django
Django クラスTemplateViewを使った処理でif文を関数に