模板中的Django反向查询

模板中的Django反向查询,django,reverse,Django,Reverse,我有这样的模型 class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __unicode__(self): return self.name class Entry(models.Model): blog = models.ForeignKey(Blog) headline = models.C

我有这样的模型

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def __unicode__(self):
        return self.name

class Entry(models.Model):
    blog = models.ForeignKey(Blog)
    headline = models.CharField(max_length=255)
我想在一个页面中列出所有博客。我写了这样一个观点:

def listAllBlogs(request):
    blogs= Blog.objects.all()
    return object_list(
        request,
        blogs,
        template_object_name = "blog",
        allow_empty = True,
        )
我可以显示博客的标语,这样就可以

{% extends "base.html" %}
{% block title %}{% endblock %}
{% block extrahead %}

{% endblock %}

{% block content %}
     {% for blog in blog_list %}
          {{ blog.tagline }}
     {% endfor %}
{% endblock %}
但是我想展示一下,这样的东西
blog\uuuu entry\uuuu name
,但我不知道如何在模板中实现这一点。 此外,博客中可能没有条目。如何在模板中检测


谢谢

根据您的代码,您可以执行以下操作

{% block content %}
     {% for blog in blog_list %}
          {{ blog.tagline }}
          {% for entry in blog.entry_set.all %}
              {{entry.name}}
          {% endfor %}
     {% endfor %}
{% endblock %}
要访问博客条目():
blog.entry\u set.all

若要在博客没有条目时执行其他操作,则需要在集合为空时执行标记

{% block content %}
     {% for blog in blog_list %}
          {{ blog.tagline }}
          {% for entry in blog.entry_set.all %}
              {{entry.name}}
          {% empty %}
             <!-- no entries -->
          {% endfor %}
     {% endfor %}
{% endblock %}
{%block content%}
{blog_list%}中的blog为%
{{blog.tagline}
{blog.entry_set.all%}
{{entry.name}
{%empty%}
{%endfor%}
{%endfor%}
{%endblock%}

这不应该是blog.entry\u set而不是blog\u entry\u set吗?下面的两个答案都是正确的,只有两条注释。为
blog
字段定义
related\u name='entries'
,您将能够编写
blog.entries
。并使用
select_related()
,而不是进行N+1 SQL查询。@brsbilgic对于
OneToOneField
您只需使用:
blog.entry
(而不是
blog.entry\u set
)。这很有效。非常感谢。但是,如果关系是一对一blog=models.OneToOneField(blog,unique=True),该怎么办呢。在`{blog.entry\uuuu headline}这样的模板中,正确的方法是什么`