我是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%。无论如何,谢谢你!
答案 0 :(得分:2)
team
不是一个对象,它是一个查询集 - 简单地说,是对象的列表。即使表中只有一个对象,它只是一个列表。因此,您不能仅仅引用模型属性就好像它是模型的实例 - 您必须先将实例拉出来:
{% for t in team %}
{{ t.team_name }}
{% endfor %}
一些笔记。如循环所示,将其命名为team
没有意义。这意味着一件事,现在我们将循环通过一个实体?这里的最佳实践是将单个项目命名为单数和查询集,列表等复数。然后我们会做for team in teams
,这使很多更有意义。
其次,请勿在属性名称中使用模型名称。当team.team_name
同样有效时,team.name
是多余的。如果另一个“name”属性,则前缀为该属性,但模型本身应优先于顶级属性名称。