Vous n'êtes pas identifié(e).
Bonjour,
J'ai une relation Many to Many dans un Models et je souhaite l'afficher dans un template:
#models.py
class Mission(models.Model):
nom = models.ManyToManyField(Identite, blank=True, null=True)
pays = models.ForeignKey(Pays)
ville = models.CharField(max_length=15, null=True)
date_depart = models.DateField(blank=True, null=True)
date_retour = models.DateField(blank=True, null=True)
vol = models.TextField(blank=True, default='', null=True)
etat = models.BooleanField(default=False)
document = models.ManyToManyField(Typedoc, null=True)
#document = models.ManyToMany(Document, null=True)
fichenavette = models.TextField(null=True)
source = models.CharField(max_length=20, blank=True, default='', null=True)
class Meta:
ordering = ['nom']
def something(self):
return self.nom
class Doc_mission(models.Model):
nom = models.ForeignKey(Identite, blank=True, null=True)
mission = models.ForeignKey(Mission, null=True)
document = models.ManyToManyField(Document)
def __unicode__(self):
return self.nom
#forms.py
class DocMissionForm(forms.ModelForm):
document = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=Document.objects.all()) #PErmet d'avoir des cases à cocher en fonction des valuers contenue dans Typedoc
class Meta:
model = Doc_mission
fields = ['nom','mission','document']
labels = {
'nom' : 'Nom',
'mission' : 'Nom de la mission',
'document' : 'Document',
}
#views.py
def detail_annexe2(request,idm,id):
#idm = id missiln
id = id user
document = Document.objects.filter(nom_id=id)
identite = Identite.objects.filter(id=id)
assurance = Assurance.objects.filter(nom_id=id)
mission = Mission.objects.filter(id=idm)
hotel = Hotel.objects.filter(mission_id=idm)
deplacement = Deplacement.objects.filter(mission_id=idm)
locvoiture = LocVoiture.objects.filter(mission_id=idm)
docmission = Doc_mission.objects.filter(mission_id=idm)
return render(request, 'detail_annexe2.html', {'documents':document, 'identites': identite, 'assurances' : assurance, 'missions':mission,
'hotels':hotel, 'deplacements':deplacement,'locvoitures':locvoiture, 'docmissions':docmission})
Voici le code dans mon template pour afficher les documents relative à la mission, mais cela ne m'afiche rien
{% if docmissions %}{% for docmission in docmissions %}{% for p in docmission.mission.all %}<p><b>Documents:</b> {{ p.nom }}{% endfor %}{% endfor %}{% endif %}
Hors ligne
L'instance "docmission" de la classe "Mission" n'a pas de champs "mission". Il faut boucler sur "document".
Hors ligne