Cuando usamos un campo con diferentes opciones (choices) en nuestro modelo utilizamos una lista de elementos cada uno con el valor real que se almacenará en la base de datos seguido por la representación legible del dato. Un ejemplo es el siguiente modelo:
ESTILOS_CHOICES = (
('soul', 'Soul'),
('jazz', 'Jazz'),
('hiphop', 'Hip-Hop'),
)
class Artista(models.Model):
estilo=models.CharField(maxlength=10, choices=ESTILOS_CHOICES)
Suponiendo que tenemos una plantilla que recibe un objeto Artista en la variable {{ artista }} normalmente accedemos al valor de sus campos mediante {{ artista.campo }}. Pero al estar usando choices con {{ artista.estilo }} obtendremos el valor almacenado en la base de datos en vez de su representación legible definida en ESTILOS_CHOICES. ¿Cómo acceder a la forma legible del dato? Para ello tenemos la función get_FOO_display() que nos permite acceder al valor legible de cualquier campo del modelo que utilice choices.Basta con usar {{ artista.get_estilo_display }} en nuestra plantilla para mostrar la representación legible del campo.
La información sobre get_FOO_display() se encuentra en la referencia de modelos.
Publicado por Antonio Melé el Domingo 8 de Marzo de 2009
Compártelo:
| Categorías:
modelos,
plantillas,
trucos
El templatetag {% regroup %} del lenguaje de plantillas de Django nos permite agrupar un listado de objetos por una propiedad. Generalmente utilizamos un campo por ...
Algo interesante que nos aporta django-command-extensions es poder crear una representación gráfica de nuestros modelos (o por decirlo de otro modo nuestro esquema de ...
Muchas veces deseamos acceder a los settings de nuestro proyecto desde alguna de nuestras plantillas. Lo ideal es crear un context processor que nos ...
Este snippet reemplaza la funcionalidad del templatetag {% if %} permitiendo realizar comparaciones con operadores >, <, >=, <=, != además de las comparaciones que permite hacer {% if %} por defecto. Por ...
No hay ningún comentario todavía.
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas