Djangoで掲示板アプリを作成しております。
サイト入口のindex.htmlにスレッド一覧とともに各スレッドのコメント数(集計)を表示したく質問致します。
viwes.pyの
threds = Thred.objects.all()
でスレッド一覧を取得しindex.htmlで表示させています。
同様に子項目である、Commentモデルのコメント数をThredモデルのid別で集計した値を
comment_cnt = Comment.objects.filter( ).count()
で表示させたいのですが、filter関数に何の値を渡せばよいかわからず進めません。
恐れ入りますが、ご教授いただけますと幸いです。
どうぞよろしくお願い致します。
models
1class Thred(models.Model): 2 #掲示板スレッド 3 thred_name = models.CharField('スレッド名', max_length=30) 4 created_at = models.DateField(default=timezone.now) 5 6class Comment(models.Model): 7 #掲示板コメント 8 name = models.CharField('名前', max_length=20) 9 comment = models.CharField('書き込み', max_length=200) 10 created_at = models.DateField(default=timezone.now) 11 thred = models.ForeignKey(Thred, to_field='id',on_delete=models.CASCADE)
viwes
1def index(request): 2 threds = Thred.objects.all() 3 comment_cnt = Comment.objects.filter( ).count() #ここを修正する必要あり 4 5 if request.method == 'POST': 6 form = ThredForm(request.POST) 7 if form.is_valid(): 8 form.save() 9 else: 10 form = ThredForm() 11 12 context = {'threds': threds, 'form': form, 'comment_cnt': comment_cnt} 13 14 return TemplateResponse(request, 'index.html', context)
html
1<h3>スレッド一覧</h3> 2{% for thred in threds %} 3<li> 4 <a href="{% url 'edit' thred.id %}">{{ thred.thred_name }}({ comment_cnt })</a> 5</li> 6{% endfor %}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/22 06:16