无法在模板中看到查询结果

时间:2013-02-15 17:58:12

标签: django django-views django-templates

我希望在ajax get请求后看到我的查询结果为html。 请在下面找到我的代码, def tanim_ajax(请求):

#views.py
def tanim_ajax(request):

    if request.GET.get('q'):

        q = request.GET.get('q')
        results = Title.objects.filter(title__contains=q),
        print results
        return render_to_response('tanim/ajax.html',
                                    {'results':results},
                                    context_instance=RequestContext(request))

#models.py
class Title(models.Model):
    title = models.CharField(max_length=100,verbose_name="Başlık")
    category = models.ForeignKey(Category,verbose_name="Kategori")
    active = models.BooleanField(default=False)
    slug = models.SlugField(editable=False)

    def __unicode__(self):
        return self.title

一切都适用于模板

{% for i in results %}
<br>{{i}}
{% endfor %}

当我检查[<Title: foo>]网址时,我可以看到结果为http://127.0.0.1:8000/tanimlar/tanim_ajax/?q=foo

但是当我有以下模板时

 {% for i in results %}
<br>{{i.title}}
{% endfor %}

我没有看到任何结果。任何的想法 ?

1 个答案:

答案 0 :(得分:1)

因为您正在将QuerySet传递到上下文中。相反,请尝试将值()附加到您的查询中,该查询将返回字典。

results = Title.objects.filter(title__contains=q).values()