Запрос Comment POST работает, но комментарии не отображаются под постом

Я относительно новичок во всем этом. Я нахожусь в процессе создания страницы социальной сети с помощью django/python. Возможность создать пост в ленте новостей (т.е. список постов) и возможность нажать на один пост, чтобы увидеть более подробный вид, работает правильно. Когда пользователь нажимает на одно сообщение, чтобы увидеть его более подробно, у него также есть возможность добавить комментарий.Вот в чем проблема: поле ввода "создать комментарий" работает нормально, как и кнопка "опубликовать комментарий", но когда вы нажимаете на кнопку "опубликовать комментарий", мой терминал показывает, что комментарий опубликован, но список комментариев так и не появляется.

Что появляется в моем Powershell/Terminal, когда я нажимаю кнопку 'post comment':

[DD/MONTH/2022 HH:MM:SS] "POST /social/post/5 HTTP/1.1" 200 3995

скриншот того, что отображается на моем сайте

в моем settings.py установлены приложения:

INSTALLED_APPS = [

'social',
'landing',

'crispy_forms',
'allauth',
'allauth.account',
'allauth.socialaccount',


'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'crispy_bootstrap5',


'allauth.socialaccount.providers.instagram',
'allauth.socialaccount.providers.linkedin',
'allauth.socialaccount.providers.facebook',

]

my views.py:

from django.shortcuts import render
from django.urls import reverse_lazy
from django.contrib.auth.mixins import UserPassesTestMixin, LoginRequiredMixin
from django.views import View
from django.views.generic.edit import UpdateView, DeleteView
from .models import Post, Comment
from .forms import PostForm, CommentForm

class PostListView(LoginRequiredMixin, View):
    def get(self, request, *args, **kwargs):
        posts = Post.objects.all().order_by('-created_on')
        form = PostForm()

        context = {
            'post_list': posts,
            'form': form,
        }
        return render(request, 'social/post_list.html', context)
def post(self, request, *args, **kwargs):
    posts = Post.objects.all().order_by('-created_on')
    form = PostForm(request.POST)

    if form.is_valid():
        new_post = form.save(commit=False)
        new_post.author = request.user
        new_post.save()

    context = {
        'post_list': posts,
        'form': form,
    }
    return render(request, 'social/post_list.html', context)

class PostDetailView(LoginRequiredMixin, View):
    def get(self, request, pk, *args, **kwargs):
        post = Post.objects.get(pk=pk)
        form = CommentForm()
        comments = Comment.objects.filter(post=post).order_by('-created_on')

    context = {
        'post': post,
        'form': form,
        'comments': comments,
    } 
    return render(request, 'social/post_detail.html', context)

def post(self, request, pk, *args, **kwargs):
    post = Post.objects.get(pk=pk)
    form = CommentForm(request.POST)

    if form.is_valid():
        new_comment = form.save(commit=False)
        new_comment.author = request.user
        new_comment_post = post
        new_comment.save()

    comments = Comment.objects.filter(post=post).order_by('-created_on')

    context = {
        'post': post,
        'form': form,
        'comments': comments,
    }
    
    return render(request, 'social/post_detail.html', context)

my models.py:

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User



class Post(models.Model):
    body = models.TextField()
    created_on = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

class Comment(models.Model):
    comment = models.TextField()
    created_on = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey('Post', on_delete=models.CASCADE, null=True)
    

my forms.py:

    from django import forms
from .models import Post, Comment

class PostForm(forms.ModelForm):
    body = forms.CharField(
        label='',
        widget=forms.Textarea(
            attrs={'rows': '3',
            'placeholder': 'Share your ideas...'}
        ))

    class Meta:
        model = Post
        fields = ['body']

class CommentForm(forms.ModelForm):
    comment = forms.CharField(
        label='',
        widget=forms.Textarea(
            attrs={'rows': '3',
            'placeholder': 'Share your opinion...'}
        ))

    class Meta:
        model = Comment
        fields = ['comment']

собственно html-шаблон, на котором находится функция комментария:

post_detail.html:

    {% extends 'landing/base.html' %}
{% load crispy_forms_tags %}

{% block content %}
<div class="container">
    <div class="row mt-5">
        <div class="col-md-5 col-sm-6">
            <a href="{% url 'post-list' %}" class="btn btn-light">Back To Feed</a>
        </div>
    </div>
    <div class="row justify-content-center mt-3">
        <div class="col-md-5 col-sm-12 border-bottom">
            <p>
                <strong>{{ post.author }}</strong> {{ post.created_on }}
                {% if request.user == post.author %}
                <a href="{% url 'post-edit' post.pk %}" style="color: #333;"><i class="far fa-edit"></i></a>
                <a href="{% url 'post-delete' post.pk %}" style="color: #333;"><i class="fas fa-trash"></i></a>
                {% endif %}
            </p>
            <p>{{ post.body }}</p>
        </div>
    </div>

    <div class="row justify-content-center mt-3">
        <div class="col-md-5 col-sm-12">
            <h5>Add a Comment!</h5>
        </div>
    </div>
    <div class="row justify-content-center mt-3 mb-5">
        <div class="col-md-5 col-sm-12">
            <form method="POST">
                {% csrf_token %}
                {{ form | crispy }}
                <div class="d-grid gap-2">
                    <button class="btn btn-light" style="background-color: #CC64C3; mt-3 mb-5">Post</button>
                </div>
            </form>
        </div>
    </div>
    {% for comment in comment %}
    <div class="row justify-content-center mt-3 mb-5 border-bottom">
        <div class="col-md-5 col-sm-12"> 
            <p>
                <strong>{{ comment.author }}</strong> {{ comment.created_on }}
                {% if request.user == comment.author %}
                <a href="{% url 'comment-delete' post.pk comment.pk %}" style="color: #333;"><i class="fas fa-trash"></i></a>
                {% endif %}
            </p>
            <p>{{ comment.comment }}</p>
        </div>
    </div>
    {% endfor %}
</div>
{% endblock content %} 

Любая помощь будет очень признательна, так как я застрял на этом уже больше недели :)

Вернуться на верх