Display Django values() on Foreign Key in template

2019-04-05 10:26发布

I have a queryset in Django that calls Model.objects.values('item')... where 'item' is a Foreign Key.

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

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

So this returns the item id and displays as an id in the template. How do I show the actual item value in the template instead of the id?

1条回答
霸刀☆藐视天下
2楼-- · 2019-04-05 11:00

To refer properties of Foreign Key items, you should use '__' lookup notation in fields. MyModel.objects.values('item__prop1', 'item__prop2', ...) should work for you.

And you can print it in templates by referencing the property names like this, when the name of template variable for the result is values.

{% for v in values %}
    Prop1: {{ v.item__prop1 }}
    Prop2: {{ v.item__prop2 }}
    ...
{% endfor %}
查看更多
登录 后发表回答