Python歴1ヶ月の初心者です。
GETとPOSTを分けて処理するのは理解できるのですが、POSTの場合処理が1つじゃなくて複数あった場合どういった書き方が出来るのでしょうか。
理想の形(改善後予定)
views
1class user_add(TemplateView): 2 def __inif__(self,request): 3 self.params = { 4 'title':"タイトル" 5 } 6 7 def get(self,request): 8 return render(request, 'hello/index.html', self.params) 9 10 def post(self,request): 11 ブラウザからの処理が複数の場合の書き方
例:
html
1<form action="{% url 'user_add' %}" method="post"> 2 <input type="submit" name=user_add value="ユーザ登録"> 3<form> 4<form action="{% url 'user_add' %}" method="post"> 5 <input type="submit" name=task_add value="タスク追加"> 6<form> 7<form action="{% url 'user_add' %}" method="post"> 8 <input type="submit" name=task_delete value="タスク削除"> 9<form>
私が書いた糞コード
以前私はすべて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)
ご教示よろしくお願いします。