我有这样的模特
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__entry__name
这样的事情,但我不知道如何才能在模板中实现这一点。
此外,博客中可能没有条目。如何在模板中检测到?
由于
答案 0 :(得分:25)
访问博客条目(Related Manager):blog.entry_set.all
如果博客没有条目,要执行其他操作,您将拥有在集合为空时执行的{% empty %}标记。
{% block content %}
{% for blog in blog_list %}
{{ blog.tagline }}
{% for entry in blog.entry_set.all %}
{{entry.name}}
{% empty %}
<!-- no entries -->
{% endfor %}
{% endfor %}
{% endblock %}
答案 1 :(得分:8)
根据您的代码,您可以执行以下操作。
{% block content %}
{% for blog in blog_list %}
{{ blog.tagline }}
{% for entry in blog.entry_set.all %}
{{entry.name}}
{% endfor %}
{% endfor %}
{% endblock %}