将模板中的外键上的Django值()显示为对象而不是其id

时间:2009-10-21 18:09:32

标签: django django-templates django-aggregation

我在Django中有一个调用Model.objects.values('item')的查询集...其中'item'是外键。

class Words(models.Model):
  word = models.CharField()

class Frequency(models.Model):
  word = models.ForeignKey(Words)
  ...

因此,这将返回项ID并在模板中显示为id。如何在模板中显示实际项目值而不是id?

1 个答案:

答案 0 :(得分:12)

要引用外键项的属性,应在字段中使用“__”查找表示法。 MyModel.objects.values('item__prop1', 'item__prop2', ...)应该适合你。

当结果的模板变量名称为values时,您可以通过引用这样的属性名称将其打印在模板中。

{% for v in values %}
    Prop1: {{ v.item__prop1 }}
    Prop2: {{ v.item__prop2 }}
    ...
{% endfor %}