如何过滤和遍历Django模板中的对象

时间:2018-08-20 18:00:45

标签: django django-models

我正在修改Aldryn Newsblog随附的默认article.html模板,以允许使用评论表格并列出该特定文章的评论。我已包括表格,没有问题。但是我不知道如何查询评论。

已编辑

这是我的list_comments.html模板:

{% load cms_tags staticfiles sekizai_tags %}
{% if comments %}
    {% for item in comments %}
    <div class="comment paragraph">
        <h4>{{ item.author }}</h4>
        <p>{{ item.comment }}</p>
        <p>{{ item.date }}</p>
    </div>
    {% endfor %}
{% else %}
    <p>No comments exist on this blog. Be the first to comment!</p>
{% endif %}

和comment_form.html

{% load cms_tags staticfiles sekizai_tags %}
<div id="comment_form">
<div class="container constrained paragraph">
    <h5>Submit a comment</h5>
    <form method="post">
        {% csrf_token %}

        {{ comment_form }}

        <input type="hidden" name="page" value="{{ article.id }}">

        <input type="submit" value="Submit Comment">
    </form>
</div>

和models.py:

class BlogComment(models.Model):
    ip_address = models.CharField(max_length=255, verbose_name="IP Address")
    date = models.DateTimeField(default=datetime.now)
    article = models.CharField(max_length=255)
    author = models.CharField(max_length=255)
    comment = models.CharField(max_length=1000)

在views.py中,我拥有这些:

def display_form(request):
    comment_form = CommentForm()

    return render(request, 'comment_form.html', {'comment_form': comment_form})


def get_blog_comments(request):
    qs = BlogComment.objects.all()
    context = {'comments': qs, 'another': 'test'}
    return render(request, 'list_comments.html', context)

在两个模板中,上下文变量均不输出任何内容。我因自己做错了事而茫然。 django.template.context_processors.request包含在我的settings.py context_processors中。

1 个答案:

答案 0 :(得分:0)

如前所述,查询是在您的views.py文件中完成的。

# views.py
def get_blog_comments(request):

    if request.method == "GET":
        qs = BlogComment.objects.all()
        template = # location of template, ex. blog_list.html
        context = {'obj_list': qs}
        return render(request, template, context)