前提・実現したいこと
掲示板のコメントごとにいいねのカウントをつけていきたい
発生している問題・エラーメッセージ
エラーメッセージ 一つのコメントのいいねを押すとすべとのコメントにいいねの数が反映してしまう
該当のソースコード
python ソースコード from django.db import models # Create your models here. from django.utils import timezone class Good(models.Model): created_at = models.DateTimeField(default=timezone.now) class Meta: db_table = "good" verbose_name = verbose_name_plural = "いいね" class Post(models.Model): name = models.CharField('名前', max_length=32, blank=False) message = models.TextField('メッセージ', max_length=140) created_at = models.DateTimeField(default=timezone.now) good = models.ForeignKey(Good, on_delete=models.CASCADE, blank=True, null=True) class Meta: db_table = "post" verbose_name = verbose_name_plural = "投稿"
python from django.template.response import TemplateResponse from django.core.paginator import Paginator from django.shortcuts import redirect from polls.models import Post from polls.forms import PostForm from polls.models import Good def index(request): # POSTでデータを送信 if request.method == 'POST': form = PostForm(request.POST) # 値にエラーがないか確認 if form.is_valid(): form.save() else: form = PostForm() posts = Post.objects.order_by('-created_at') paginator = Paginator(posts, 5) page = request.GET.get('page', 1) posts = paginator.page(page) good_count = Good.objects.count() return TemplateResponse(request, 'polls/index.html', {'posts': posts, 'form': form, 'good_count': good_count}) def good(request): if request.method == 'POST': Good.objects.create() return redirect('index')
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
"いいね" (Good) オブジェクトを、コメントとは無関係にすべて集めているからではないですか?
あなたの回答
tips
プレビュー