database - Django 读取模板中的模型数据

标签 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%。不管怎样,谢谢大家!

最佳答案

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/

相关文章:

python - Django 排除列表中*每个*项目的查询集 __in

Magento url 路由 : how to locate the controller/views for a given url

c++ - 成员函数上的 std::is_function?

sql - 用于报告和日常交易的数据库

MySQL sql 忽略 WHERE 条件

mysql - 如何将两个django模型(表)合并为一个模型(表)

mysql - 通过 CROSS JOINing 两个表将值插入第三个表

python - modelformset_factory 和 csrf token 丢失或不正确

python - pip 和 virtualenv 在错误的地方安装了部分 django

c++ - 模板转换运算符返回对数组的引用