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

sim*_*imi 10 django django-templates django-aggregation

我在Django中有一个查询集,它调用Model.objects.values('item')... where 'item'是一个外键.

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

class Frequency(models.Model):
  word = models.ForeignKey(Words)
  ...
Run Code Online (Sandbox Code Playgroud)

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

Ach*_*nol 12

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

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

{% for v in values %}
    Prop1: {{ v.item__prop1 }}
    Prop2: {{ v.item__prop2 }}
    ...
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

  • 显然Achimnoi使用'prop1'作为例子 - 你应该在视图中做`Model.objects.values('word__word')`,在模板中做``{{v.word__word}}`. (3认同)