teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/01/08 01:50

投稿

yaha4967
yaha4967

スコア106

answer CHANGED
@@ -3,4 +3,20 @@
3
3
  kamokuForm.save()
4
4
  return redirect('kamoku')
5
5
 
6
- formをセーブするのではなく、モデルインスタンスをセーブすれば良いのではないでしょうか。
6
+ formをセーブするのではなく、モデルインスタンスをセーブすれば良いのではないでしょうか。
7
+
8
+
9
+
10
+ 追記
11
+ 言葉足らずでした。フォームをセーブしてしまうと新しいレコードが作成されてしまうと思います。だからモデルを更新したいのならモデルインスタンスにフォームの値を入れてモデルインスタンスをセーブすれば良いと思います。
12
+ ```ここに言語を入力
13
+ def kamoku_edit(request, id):
14
+ kamoku = get_object_or_404(Kamoku, pk=id) #これを変更したいなら
15
+ kamokuForm = Kamoku_editForm(instance=kamoku)
16
+ if request.method == 'POST':
17
+ kamokuForm = Kamoku_editForm(data=request.POST)
18
+ if kamokuForm.is_valid():
19
+ kamoku.kamoku_name = kamokuForm.cleaned_data['kamoku_name']
20
+ kamokuForm.save() #kamoku.save()とする
21
+ return redirect('kamoku')
22
+ ```