我是 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%。不管怎样,谢谢大家!
最佳答案
team
不是一个对象,而是一个查询集——简单地说,就是一个对象列表。即使表中只有一个对象,它也只是一个对象的列表。因此,您不能只引用它的模型属性,就好像它是模型的实例一样——您必须首先拉出该实例:
{% for t in team %}
{{ t.team_name }}
{% endfor %}
一些注释。正如循环所示,将其命名为 team
没有意义。这意味着一件事,现在我们要循环访问单个实体?这里的最佳实践是将单个项目命名为单数,将查询集、列表等命名为复数。然后我们会为团队中的团队
做这件事,这更更有意义。
其次,不要在属性名称中使用模型名称。当 team.name
也能正常工作时,team.team_name
是多余的。如果还有另一个“name”属性,则在该属性前面加上前缀,但模型本身应优先于顶级属性名称。
关于database - Django 读取模板中的模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498567/