質問: { 'title':"タイトル" } def get(self,request): return render(request, 'hello/index.html', self.params) def post(self,request): ブラウザからの処理が複数の場合の書き方 ``` 例: ``` ``` --- 私が書いた糞コード ----------- 以前私はすべてif文で分岐させていました。 フォームから届いたPOSTをif文で判定させて、同じ部品名があったらそのTrueを返すロジックを組みました。 現在の形(改善前) ``` def user_add(request, num=1): if 'user_add' in request.POST: 処理内容 return redirect('user_add', num=1) # 完了したToDoを完了ToDoリストに追加 if 'task_add' in request.POST or 'id' in request.POST: 処理内容 return redirect('user_add', num=1) # ログアウト:セッションを削除してindex.htmlにredirect if 'task_delete' in request.POST: 処理内容 return render(request, 'todo/user_add.html', pramas) ``` ご教示よろしくおm
回答: ルーティングをそれぞれ定義するのがよいと思います。 user_add、task_add、task_delete それぞれのPOST先をurls.pyに記載して def user_add のほかに def task_add def task_delete のような別関数として定義したものを紐付けるのが見やすいきがします。 参考 https://hombre-nuevo.com/python/python0046/ (「Django ルーティング」で検索すればいろいろでてきます。)