詳細画面(detail.html)からコメントページ(answer.html)へのhtml側のリンク先を指定していますがなぜか(一番下に記述した)エラーが出ます。
手入力でkome/2などとすると正常にコメントページが表示されます(urlsのpathが正常に通る)
また、htmlのリンク指定を"#"とすると正常にdetailが呼び出されてdetail.htmlが読み込まれます。
どうすればリンク先の間違いを指摘されずエラーを回避できるでしょうか?
調べるとpkが空になっているのが原因だと言われてますが....pkが空というのもよくわかりません....
python
1 ------urls------- 2 3path('detail/<int:pk>/', detail, name="detail"), 4path('kome/<int:pk>/', Kome.as_view(), name="kome"),
python
1 ---views----- 2 3def detail(request, pk): 4 object = Diary.objects.get(pk=pk) 5 return render(request, 'detail.html', {'object':object}) 6 7class Kome(CreateView): 8 9 model = Answer 10 fields = ( 'content','title') 11 template_name = 'kome.html' 12 13 def form_valid(self, form): 14 15 16 17 diary_pk = self.kwargs['pk'] 18 diary = get_object_or_404(Diary, pk=diary_pk) 19 20 21 answer = form.save(commit=False) 22 answer.user = self.request.user 23 answer.diary = diary 24 answer.save() 25 26 27 return redirect('detail', pk=diary_pk)
python
1 ------detail.html------- 2 3<h1>{{ object.title }}</h1> 4 5<a href="{% url 'kome' diary.pk %}">コメントページへ行く</a> **これがわかりません....**
エラー内容です Reverse for 'kome' with arguments '('',)' not found 1 pattern(s) tried: ['answer\/(?P<pk>[0-9]+)\/$']
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/06 01:07