You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django2.2中如何在report_detail.html展示评论?修改后未成功求助

解决Django 2.2中Report详情页展示关联评论的问题

你已经在模型层正确建立了Report和Comment的关联(通过related_name='comments'),问题核心在于模板未渲染评论数据,下面是具体的修复步骤:

1. 确认视图无需额外调整

你的ReportDetailView继承自DetailView,它会自动将当前的Report对象以object(或report,对应模型名)的变量名传递到模板中,所以views.py不需要修改,默认的上下文传递已经满足需求。

2. 修改report_detail.html渲染评论

在现有文章内容的下方,添加评论展示的代码块,遍历该报告关联的所有评论:

<div class="article-entry">
    <h2>{{ object.done }}</h2>
    <p>by {{ object.author }} | {{ object.date }}</p>
    <p>{{ object.willDo }}</p>
</div>

<!-- 新增评论展示区域 -->
<div class="comments-section">
    <h3>评论</h3>
    {% if object.comments.all %}
        {% for comment in object.comments.all %}
            <div class="comment">
                <p><strong>{{ comment.author.username }}</strong> 说:</p>
                <p>{{ comment.comment }}</p>
            </div>
        {% endfor %}
    {% else %}
        <p>还没有评论,快来添加第一条吧!</p>
    {% endif %}
</div>

3. 验证关联数据是否存在

确保你已经通过后台管理页面或其他方式,创建了关联到当前Report的Comment对象,否则模板会显示“还没有评论”的提示内容。

额外可选:添加评论提交功能(如果需要)

如果想让用户在详情页直接提交评论,可以扩展视图和模板:

第一步:修改views.py添加表单上下文

from django.views.generic import DetailView
from .models import Report, Comment
from django import forms

# 先快速定义评论表单(也可以单独放在forms.py中)
class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ['comment']

class ReportDetailView(LoginRequiredMixin, DetailView):
    model = Report
    template_name = 'report_detail.html'
    login_url = 'login'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['comment_form'] = CommentForm()
        return context

第二步:在模板中添加提交表单

在评论展示区域下方添加:

<!-- 评论提交表单 -->
<div class="comment-form">
    <h3>添加评论</h3>
    <form method="POST" action="{% url 'add_comment' object.id %}">
        {% csrf_token %}
        {{ comment_form.as_p }}
        <button type="submit">提交评论</button>
    </form>
</div>

第三步:添加处理表单的视图和URL

还需要创建一个处理评论提交的函数视图,并配置对应的URL(比如add_comment),这里就不展开细说了,属于扩展功能,你可以根据需求自行实现。

内容的提问来源于stack exchange,提问作者chiao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:45:29