Mostrar los valores de Django () en Clave foránea en la plantilla como objeto en lugar de su ID
-
05-07-2019 - |
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?
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