Soy un novato en django, por lo que la pregunta puede ser tonta, pero por favor siéntanse libres de enseñarme el camino correcto si lo saben. Traté de buscar en Google el problema, pero todavía estoy perdido. Aquí está mi problema:Dos llaves foráneas y un valor en la plantilla django
tengo una clase en mi modelo que tiene dos claves externas:
class X(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return name
class Y(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return name
class Z(models.Model):
name = models.CharField(max_length=30)
x = models.ForeignKey(X)
y = models.ForeignKey(Y)
def __unicode__(self):
return name
A mi me da una lista parcial de los objetos X y una lista parcial de los objetos Y de este modo:
def MyView(x_pattern, y_pattern):
x_list = X.objects.filter(name__contains=x_pattern)
y_list = Y.objects.filter(name__contains=y_pattern)
z_list = Z.objects.all()
return render_to_response({'x_list': x_list, 'y_list': y_list, 'z_list': z_list})
En mi plantilla que me gustaría ser capaz de mostrar una tabla de este modo:
<table>
<tr>
<td>Y</td>
{% for x in x_list %}
<td>{{ x }}</td>
{% endfor %}
</tr>
{% for y in y_list %}
<tr>
<td>{{ y }}</td>
{% for x in x_list %}
<td>
<!-- here I need help:
I need to display z[x, y] if it exists, or "N/A" otherwise.
-->
</td>
{% endfor %}
</tr>
{% endfor %}
¿Cómo hago esto correctamente en django?
Muchas gracias,
Puedo filtrar la lista en la vista, sin embargo, todavía no me ayuda a mostrarla correctamente (es decir, necesito asignar (x, y) el par de claves al valor z [x, y] en la plantilla para mostrar en una celda de tabla adecuada). ¿Me estoy perdiendo de algo? – mfynf