Mostrar los valores de Django () en Clave foránea en la plantilla como objeto en lugar de su ID

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

Pregunta

Tengo un queryset en Django que llama a Model.objects.values ??('item') ... donde 'item' es una clave externa.

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

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

Así que esto devuelve la identificación del elemento y se muestra como una identificación en la plantilla. ¿Cómo muestro el valor del elemento real en la plantilla en lugar del ID?

¿Fue útil?

Solución

Para consultar las propiedades de los elementos de clave externa, debe usar la notación de búsqueda '__' en los campos. MyModel.objects.values ??('item__prop1', 'item__prop2', ...) debería funcionar para usted.

Y puede imprimirlo en plantillas haciendo referencia a los nombres de propiedades como este, cuando el nombre de la variable de plantilla para el resultado es valores .

{% for v in values %}
    Prop1: {{ v.item__prop1 }}
    Prop2: {{ v.item__prop2 }}
    ...
{% endfor %}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top