djangoで掲示板アプリを作成しています。
「good」ボタンを作成して、カウントが表示されるようにしたいと思っています。
以下のようにしてボタンを押すと、「get_context_data() got an unexpected keyword argument 'form'」のエラーが表示されてしまいます。どのように修正すれば解決できるかアドバイスを頂ければ幸いです。
HTML
1<form method="POST" class="d-inline"> 2 {% csrf_token %} 3 <input type="hidden" name="like_count" value="true"> 4 <button type="submit" class="btn btn-sm btn-outline-warning"> 5 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-lightning-fill" viewBox="0 0 16 16"> 6 <path fill-rule="evenodd" d="M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09z" /> 7 </svg> 8 {{ topic.count }} good 9 </button> 10</form> 11 12
views.py
python
1class TopicAndCommentView(FormView): 2 template_name = 'thread/detail_topic.html' 3 form_class = CommentModelForm 4 5 def form_valid(self, form): 6 comment = form.save(commit=False) 7 comment.topic = Topic.objects.get(id=self.kwargs['pk']) 8 comment.no = Comment.objects.filter(topic=self.kwargs['pk']).count() + 1 9 comment.save() 10 return super().form_valid(form) 11 12 def get_success_url(self): 13 return reverse_lazy('thread:topic', kwargs={'pk': self.kwargs['pk']}) 14 15 def get_context_data(self): 16 ctx = super().get_context_data() 17 ctx['topic'] = Topic.objects.get(id=self.kwargs['pk']) 18 ctx['comment_list'] = Comment.objects.filter( 19 topic_id=self.kwargs['pk']).order_by('no') 20 return ctx 21 22 def like(request, pk): 23 try: 24 obj = Topic.objects.get(pk=pk) 25 except Topic.DoesNotExist: 26 raise Http404 27 obj.count += 1 28 obj.save() 29 return render(request,'thread/detail_topic.html')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/02 23:17