質問編集履歴

2

趣旨の間違い、idの受け取りの勘違い

2020/05/09 06:46

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- djangoのcreateviewでidを受け取る方法
1
+ djangoのcreateviewでのform作成
test CHANGED
@@ -1,74 +1,10 @@
1
- 今まで詳細画面ではclass basedのDetailview定義し、pkのみを受け取ってそこにコメントを入れるフォーム(下記のKomentView)のcreateviewを作ってコメント作成していましたが
2
-
3
-
4
-
5
- 詳細画面をfunction baseでidも受けてる形にした途端、フォームの作成方法がわからなくなりました。
6
-
7
- というのもform_vaild(self,form)でidを受け取る形がよくわかりません
8
-
9
-
10
-
11
- 下記1番同じようすには下記2番のcreateviewはどうすればいいのでしょうか?
1
+ 下記にidpkを受けとるcreateviewを追加するにはどうすればいいのでしょうか?
12
-
13
-
14
-
15
-
16
-
17
-
18
2
 
19
3
 
20
4
 
21
5
  ```python
22
6
 
23
- -----うまくいってるほうのviews------  1番
24
-
25
- class Detailview(DetailView):
26
-
27
- model = Diary
28
-
29
- template_name = 'detail.html'
30
-
31
- class KomentView(CreateView):
32
-
33
-
34
-
35
- model = Koment
36
-
37
- fields = ( 'content','title')
38
-
39
- template_name = 'koment.html'
40
-
41
-
42
-
43
- def form_valid(self, form):
44
-
45
-
46
-
47
- diary_pk = self.kwargs['pk']
48
-
49
- diary = get_object_or_404(Diary, pk=diary_pk)
50
-
51
-     #コメント作成保存
52
-
53
- koment = form.save(commit=False)
54
-
55
- koment.user = self.request.user
56
-
57
- koment.diary = diary
58
-
59
- koment.save()
60
-
61
-
62
-
63
- # 記事詳細に戻る
64
-
65
- return redirect('detail', pk=diary_pk)
66
-
67
- ```
68
-
69
- ```python
70
-
71
- ----うまくいかないviews.py-------- 2番
7
+ ----views.py--------
72
8
 
73
9
 
74
10
 

1

誤字

2020/05/09 06:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- class Answer(models.Model):
119
+ class Koment(models.Model):
120
120
 
121
121
  user = models.ForeignKey(CustomUser, verbose_name='ユーザー', on_delete=models.PROTECT)
122
122