Трям!
В form.post надо передавать пост на который оставили коммент, а ты все посты передаешь и id поста надо передавать с формы
from django.core.exceptions import ObjectDoesNotExist
def home(request):
if request.method == 'POST':
id = request.POST.get('id', None)
if id:
try:
post = Post.objects.get(pk=id)
except ObjectDoesNotExist:
return () # обработка ошибки пост не найден
if form.is_valid():
form = form.save(commit=False)
form.user = request.user
form.post = post
form.save()
return () # все хорошо, коммент сохранен
return () # обработка ошибки форма не валидная
return () # обработка ошибки id не передан
# else здесь не обязательно писать код выполнится только если не ПОСТ
context = {
'form': CommentForm(),
'comments': Comment.objects.filter(moderation=True)
}
return (request, 'blog/index.html', context) # return метод GET
По сути надо также посмотреть на CommentForm и Trace ошибки
Я нашел лишь одну ошибку, надеюсь поможет
И все комменты наверное через all надо получать
comments = Comment.objects.all()
Либо так
comments = Comment.objects.filter(moderation=True)
Так же юзера лучше получать вот так:
from django.contrib.auth import get_user_model
User = get_user_model()
И прописывать имя приложения перед точкой
pep8
from name_app.models import Post, Comment # после запятой пробел