El método para sacarlo sería usando get_NOMBRECAMPO_display(). En los siguientes pasos se resume todo:
- Hacemos nuestra consulta en la base de datos y la llamamos "consulta".
- Obtenemos el valor del campo choice en la forma legible: consulta.get_nombreCampo_display()
Aquí pongo un ejemplo:
models.py
class Tabla(models.Model):
TIPO_ETAPAS_VIDA = (
('B', 'Bebe'),
('A', 'Adolescente'),
('Ad', 'Adulto'),
('V', 'Viejo'),
)
etapasVida = models.Charfield(max_length=2, choices=TIPO_ETAPAS_VIDA)
TIPO_ETAPAS_VIDA = (
('B', 'Bebe'),
('A', 'Adolescente'),
('Ad', 'Adulto'),
('V', 'Viejo'),
)
etapasVida = models.Charfield(max_length=2, choices=TIPO_ETAPAS_VIDA)
Suponemos que en la base de datos hemos almacenado lo siguiente:
ID etapasVida
1 A
2 V
3 B
1 A
2 V
3 B
Ahora en nuestra base de datos sólo se almacenará 'B' ó 'A' ó 'Ad' ó 'V' y para obtener el valor de Bebe, Adolescente, Adulto o Viejo al realizar una consulta tenemos que usar lo siguiente:
En views.py podemos sacar el valor largo de TIPO_ETAPAS_VIDA como sigue:
Consulta con varios resultados devueltos:
obtener_etapas = Tabla.objects.all()
for etapa in obtener_etapas:
etapa.get_etapasVida_display()
Resultado:
Adolescente
Viejo
Bebe
Consulta con un solo valor devuelto
obtener_etapas = Tabla.objects.get(id=1)
etapa.get_etapasVida_display()
Resultado:
Adolescente
obtener_etapas = Tabla.objects.all()
for etapa in obtener_etapas:
etapa.get_etapasVida_display()
Resultado:
Adolescente
Viejo
Bebe
Consulta con un solo valor devuelto
obtener_etapas = Tabla.objects.get(id=1)
etapa.get_etapasVida_display()
Resultado:
Adolescente
En templates podemos sacarlo igual. Supongo que le hemos pasado una etapa de la vida obtenida por ejemplo así: mi_etapa=Tabla.objects.get(id=1)
archivo.html
mi_etapa.etapasVida_display
Encuentra otras soluciones en el nuevo blog ó descargate themes y módulos en www.softwild.es
Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.
No hay comentarios:
Publicar un comentario
Gracias por comentar.
Si has realizado alguna consulta, responderemos lo antes posible. Gracias