
DJANGO- Recorrer diccionario a partir de una lista en plantilla
Publicado por Agustin (1 intervención) el 14/07/2016 06:12:47
Hola, buenas noches.
Estoy haciendo una aplicacion la cual contiene una vista que arma dos diccionarios y una lista.
La lista, contiene objetos de tipo Persona.
Los diccionarios contienen objetos de tipo Direccion y Telefono. Donde los indices son objetos de tipo persona.
Adjunto los models.py
Al solicitar estos datos se ejecuta la siguiente funcion, que esta en views.py
Cuestion, que quiero mostrar estos datos en mi template personal.html y no lo puedo lograr. El codigo que estuve probando (junto con otros) es el siguiente.
Soy nuevo en django, asi que disculpen si es una ignorancia. Slds! y GRACIAS!
Estoy haciendo una aplicacion la cual contiene una vista que arma dos diccionarios y una lista.
La lista, contiene objetos de tipo Persona.
Los diccionarios contienen objetos de tipo Direccion y Telefono. Donde los indices son objetos de tipo persona.
Adjunto los models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Persona(models.Model):
nombre = models.CharField(max_length=50)
apellido = models.CharField(max_length = 50)
email = models.EmailField()
localidad = models.ForeignKey(Localidad, on_delete = models.CASCADE)
fecha_alta = models.DateTimeField()
categoria = models.ManyToManyField(Categoria)
def __str__(self):
return self.nombre
class Direccion(models.Model):
direccion = models.CharField(max_length=100)
numero = models.BigIntegerField()
piso = models.BigIntegerField()
depto = models.CharField(max_length=5)
persona = models.ForeignKey(Persona, on_delete = models.CASCADE)
def __str__(self):
return self.direccion
class Telefono(models.Model):
codigo_area = models.BigIntegerField()
numero = models.BigIntegerField()
persona = models.ForeignKey(Persona, on_delete = models.CASCADE)
1
2
3
4
5
6
7
8
9
10
11
12
13
def listar_personal(request, cat, loc):
telefonos = {}
direcciones = {}
pers = []
pers = Persona.objects.raw('SELECT * FROM bienvenida_persona p inner join bienvenida_persona_categoria pc on p.id = pc.persona_id WHERE p.localidad_id = '+str(loc) +' and pc.categoria_id = '+str(cat))
for i in pers:
tel = []
dire = []
tel = Telefono.objects.raw('SELECT * FROM bienvenida_telefono where persona_id ='+ str(i.id))
dire = Direccion.objects.raw('SELECT * FROM bienvenida_direccion where persona_id ='+ str(i.id))
direcciones[i] = dire
telefonos[i] = tel
return render_to_response('personal.html', {'personas' : pers, 'direcciones' : direcciones, 'telefonos': telefonos})
1
2
3
4
5
6
7
<h1>Personal disponible</h1>
<h2>Listado</h2>
{% for n in personas %}
{% for i in direcciones.n %}
<h4>{{i.direccion}}</h4>
{% endfor %}
{% endfor %}
Valora esta pregunta


0