Отображать значения Django() для внешнего ключа в шаблоне как объект вместо его идентификатора

StackOverflow https://stackoverflow.com/questions/1602557

Вопрос

У меня есть набор запросов в Django, который вызывает Model.objects.values('item')...где 'item' является внешним ключом.

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

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

Таким образом, это возвращает идентификатор элемента и отображается как идентификатор в шаблоне.Как мне показать фактическое значение элемента в шаблоне вместо идентификатора?

Это было полезно?

Решение

Чтобы ссылаться на свойства элементов внешнего ключа, вы должны использовать обозначение подстановки '__' в полях. MyModel.objects.values('item__prop1', 'item__prop2', ...) должно сработать на вас.

И вы можете распечатать его в шаблонах, обратившись к именам свойств следующим образом, когда имя переменной шаблона для результата равно values.

{% for v in values %}
    Prop1: {{ v.item__prop1 }}
    Prop2: {{ v.item__prop2 }}
    ...
{% endfor %}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top