Django在模板中阅读模型数据

时间:2012-09-19 16:02:30

标签: database django templates

我是django的新手,无法从模板中的模型中读取数据。

这是模特。

class Team(models.Model):
team_name = models.CharField(max_length=30, default="Team")
created = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
    return self.team_name

观点。

def create_team(request):
team = Team.objects.all()
return render_to_response("ideas/profile.html", {'team':team})

和模板。

<h2>Available groups: {{team.team_name}} </h2>

这似乎是一个明显的解决方案:99%。无论如何,谢谢你!

1 个答案:

答案 0 :(得分:2)

team不是一个对象,它是一个查询集 - 简单地说,是对象的列表。即使表中只有一个对象,它只是一个列表。因此,您不能仅仅引用模型属性就好像它是模型的实例 - 您必须先将实例拉出来:

{% for t in team %}
    {{ t.team_name }}
{% endfor %}

一些笔记。如循环所示,将其命名为team没有意义。这意味着一件事,现在我们将循环通过一个实体?这里的最佳实践是将单个项目命名为单数和查询集,列表等复数。然后我们会做for team in teams,这使很多更有意义。

其次,请勿在属性名称中使用模型名称。当team.team_name同样有效时,team.name是多余的。如果另一个“name”属性,则前缀为该属性,但模型本身应优先于顶级属性名称。