Как получить доступ к attrbuite другой модели или таблицы с помощью ManyToMany в django

Пожалуйста, мне нужна ваша помощь. Как я могу получить доступ к атрибутам другой модели или таблицы, используя ManyToMany

Мне нужно получить данные через этот метод, но они не извлекаются

---=> это Models.py

class Mission(models.Model):
        nom=models.CharField(max_length=50,null=False,blank=False)
        description=models.CharField(max_length=150,null=False,blank=False)  
        date_publier=models.DateTimeField()  

class Participer(models.Model):
    id_benevole =  models.ManyToManyField(User)
    id_mission =  models.ManyToManyField(Mission)
    est_participer = models.BooleanField(default=False)

class  User(AbstractUser):
    est_association = models.BooleanField(default=False)
    est_benevolat = models.BooleanField(default=False)
    username = models.CharField(max_length=30,unique=True)
    email = models.EmailField()
    password1 = models.CharField(max_length=20,null=True)
    password2 = models.CharField(max_length=20,null=True)

class ProfileBenevole(models.Model):
   user = models.OneToOneField(User,related_name="benevole", on_delete = models.CASCADE, 
    primary_key = True)
    photo_profile = models.ImageField( upload_to='uploads/images',null=True,blank=True)
    nomComplet = models.CharField(max_length=50,null=True)

--=> это Views.py

def demande_participer(request):
  participers=Participer.objects.all()
return render(request,'Association/success.html', {'participers':participers},print(participers))


----=> success.html

{% extends 'home/base.html'%}
{% block content %}{% load static %}
<div class=" mt-4 pb-5">
    <h1 style="text-align:center;">Confirmation de Participation </h1>
    <div class="container">
    <div class="card mt-5 pb-5">
       {% for parti in participers %}
      
       {{parti.mission_id.nom}}
       <br>
       {{parti.id_benevole.username}}
       <br>
       {{parti.est_participer}}
       {% endfor%}
       
     </div>
    
    <a class="btn btn-secondary mt-2 " href="{% url 'benevole' %}">Retour </a>
    </div>
</div>
{% endblock content %}

Поскольку у вас есть отношение ManyToMany, у каждого участника может быть несколько миссий и пользователей. Поэтому не имеет смысла получать атрибут одного из (потенциально) нескольких связанных объектов.

Либо измените ManyToMany на ForeignKey в вашей модели Participer, либо пройдитесь по всем связанным объектам в вашем шаблоне. Что-то вроде (я не тестировал этот код):

{% for parti in participers %}
    {% for benevole in parti.id_benevole.all %}
        {{ benevole.username }}
    {% endfor %}
{% endfor %}

Судя по именам, которые вы даете полям вашей модели, я думаю, что переход от ManyToMany к ForeignKey является здесь лучшим вариантом.

Вернуться на верх