Je suis un débutant à django, donc la question pourrait être stupide, mais s'il vous plaît n'hésitez pas à m'apprendre la bonne façon si vous le savez. J'ai essayé de googler le problème, mais je suis toujours à perte. Voici mon problème:Deux clés étrangères et une valeur dans le modèle django
J'ai une classe dans mon modèle qui a deux clés étrangères:
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
À mon avis, je reçois une liste partielle des objets X et une liste partielle des objets Y comme ceci:
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})
Dans mon modèle, je voudrais être en mesure d'afficher une table comme ceci:
<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 %}
Comment est-ce que je fais cela correctement dans django?
Merci beaucoup,
Je peux filtrer la liste dans la vue, mais cela ne m'aide toujours pas à l'afficher correctement (ie je dois mapper la paire de clés (x, y) à la valeur z [x, y] du modèle pour afficher dans une cellule de table appropriée). Est-ce que j'ai râté quelque chose? – mfynf