Bonjour,
j'aimerais comprendre comment relier deux modèles de la façon suivante :
Ici mon modèle Machine est lié au modèle Equipement par ManyToManyField. Ainsi, depuis l'interface admin, je peux choisir de lier une machine à une liste d'équipement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Equipement(models.Model): hotes = models.CharField(max_length=200) ip = models.CharField(max_length=255) nom = models.CharField(max_length=200) def __unicode__(self): return "{0} {1} {2}".format (self.nom, self.hotes, self.ip) class Machine(models.Model): nom = models.CharField(max_length=200) equipements = models.ManyToManyField(Equipement) def __unicode__(self): return self.nom
Cependant, cette liaison ne me permet pas de lier automatiquement une liste d'équipements que j'ajoute depuis mon application, à une machine.
D'après ma vue adresse :
je souhaiterai afficher dans adresses.html, les équipements liés à une machine dans un tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 def adresses(request, identifiant): machine = Machine.objects.filter(id=identifiant) return render(request,'dns_app/adresses.html', locals())
Comment puis-je lier équipements et machine pour que les données de mon tableau s'affichent sans avoir à manipuler l'interface admin ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 {% for toto in machine %} {% for tata in toto.equipements.all %} <tr> <td align=center>{{tata.nom}}</td> <td align=center>{{tata.hotes}}</td> <td align=center>{{tata.ip}}</td> <td align=center><a href="{% url 'dns-app-ad-update' tata.pk %}">modifier</td></a><td align=center><a href="{% url 'dns-app-ad-delete' tata.pk %}">supprimer</td></a> {% endfor %} </tr>
Merci !!
Partager