Шаблон Django не отображает ничего

У меня есть форма TextField (текстовая область) на моей странице, где пользователи могут отправлять комментарии и отображать их.

Я оставил несколько комментариев, но ни один из них не отображается. Я вижу, что каждый раз, когда я добавляю один, пространство, где должны быть комментарии, увеличивается, после осмотра страницы с помощью инструментов разработчика, там просто куча пустых HTML тегов для всех комментариев, которые я оставил, не могу понять, в чем дело

models.py:

class Comments(models.Model):
    comment = models.TextField(max_length=250)
    user_commented = models.CharField(max_length=64)
    list_title = models.CharField(max_length=64)
    list_author = models.CharField(max_length=64)
    date_time = models.DateTimeField(default=timezone.now, blank=True)

    def __str__(self):
        return f"{self.user_commented}, {self.date_time}, {self.comment}"

forms.py

class CommentForm(ModelForm):
    class Meta:
        model = Comments
        fields = ['comment']

views.py

commentform = CommentForm()

comment = CommentForm(request.POST)

if "comment" in request.POST:
            if comment.is_valid:
                comment_data = Comments.objects.create(list_title=title, user_commented=username, list_author=author, comment=comment)
                comment_data.save()
                comment_data = list(Comments.objects.all().filter(list_title=title))
                return render(request, "auctions/listing.html", {
                        "form": form,
                        "listing": listing_object,
                        "checkbox": checkbox,
                        "commentform": commentform,
                        "max_bid": max_bid,
                        "comments": comment_data
                    })

шаблон

<form action="{% url 'listing' listing.title %}" method="POST">
        {% csrf_token %}
        {{ commentform }}
        <input type="submit" value="Comment" name="comment">
    </form>

    <div class="comment">
        <h5>Comments</h5>
        {% for comment in comments %}
            <p>{{ comments.user_commented }}</p><span>{{ comments.date_time }}</span>
            <p>{{ comments.comment }}</p>
            <br>
        {% endfor %}
    </div>

GET запрос: Я собрал все комментарии из базы данных в переменную, прежде чем передать ее в GET-запрос, следующим образом

comment_data = list(Comments.objects.all().filter(list_title=title))


return render(request, "auctions/listing.html", {
        "form": form,
        "listing": listing_object,
        "checkbox": checkbox,
        "commentform": commentform,
        "max_bid": max_bid,
        "users": author,
        "comments": comment_data
    })

Вы поступили неправильно:

      {% for comment in comments %}
            <p>{{ comment.user_commented }}</p><span>{{ comment.date_time }}</span>
            <p>{{ comment.comment }}</p> #You had added comments here instead of comment
            <br>
        {% endfor %}

Согласно циклу for, вы добавили комментарии вместо комментария.

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