django queryset从过滤器获取对象

时间:2014-09-23 19:27:48

标签: python django

实现django-like我需要objects,它将在{%like object%}中使用。如果我使用object = Article.objects.get(pk=1),那么特定文章的类似系统正常工作。但我使用过滤器,因为我需要模板语言的特定字段值。从过滤器或任何其他方法我可以得到对象,所以我喜欢的系统可以工作吗?

视图

settings = Article.objects.filter().values('title','content', ..).order_by('-creation_date')
template_var['settings'] = settings

HTML

{% for x in settings %}
    <h2 class="blog-post-title">{{ x.title }}</h2>
        <p>{% likes object %} </p>
        <p class="blog-post">{{ x.created }} by <a href="#">{{ x.user__username }}</a></p>
            <p>{{ x.content }}.</p>
    </div>
{% endfor %}

这是一个问题,如何从目前我得到列表的设置中获取每个对象,因为过滤器api

1 个答案:

答案 0 :(得分:0)

如果您只使用filter(),并且不使用values(),那么您将获得文章的查询集

articles = Article.objects.filter().order_by('-creation_date')

如果您在模板中循环浏览articles,您将拥有可与模板标记一起使用的article个对象。您仍然可以像以前一样使用{{ article.created }}等访问属性。

{% for article in articles %}
<h2 class="blog-post-title">{{ article.title }}</h2>
    <p>{% likes article %} </p>
    <p class="blog-post">{{ article.created }} by <a href="#">{{ article.user.username }}</a></p>
        <p>{{ article.content }}.</p>
</div>
{% endfor %}