Sono un novizio del django, quindi la domanda potrebbe essere stupida, ma per favore sentitevi liberi di insegnarmi la strada giusta se lo sapete. Ho provato a cercare su Google il problema, ma sono ancora in perdita. Ecco il mio problema:Due chiavi esterne e un valore nel modello django
Ho una classe nel mio modello che ha due chiavi esterne:
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 mio avviso ho un elenco parziale degli oggetti X e una lista parziale degli oggetti Y in questo 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})
Nel mio modello mi piacerebbe essere in grado di visualizzare una tabella in questo 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 %}
Come faccio a farlo correttamente in django?
La ringrazio molto,
Posso filtrare l'elenco nella vista, ma ancora non mi aiuta a visualizzarlo correttamente (cioè devo mappare (x, y) la coppia di chiavi al valore z [x, y] nel modello per poter visualizzare in una cella di tabella corretta). Mi sto perdendo qualcosa qui? – mfynf