Bonjour,

j'aimerais comprendre comment relier deux modèles de la façon suivante :

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
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.

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 :

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())
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
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>
Comment puis-je lier équipements et machine pour que les données de mon tableau s'affichent sans avoir à manipuler l'interface admin ?

Merci !!