Django: Доступ к полной информации о пользователе через поле ManyToMany

Всем привет, я новичок в Django и работаю над своим первым большим проектом, и у меня возникли проблемы с доступом к информации модели Django User по умолчанию через отношения ManyToMany. Я потратил много времени на поиски и никак не могу разобраться с этим.

models.py

class Event(models.Model):
  event_name = models.CharField(max_length=200, null=True, unique=True)
  #etc...

class School(models.Model):
  user = models.ManyToManyField(User)
  event = models.ForeignKey(Event, null=True, on_delete=models.PROTECT)
  #etc...

Мой url содержит id события, поэтому...

views.py

def schools(request, pk):
   event = Event.objects.get(id=pk)
   school = School.objects.filter(event=event)
   return render(request, 'accounts/schools.html', {'event':event, 'school':school})

шаблон

{% for school in school %}
   <tr>
      <td>{{school.name}}</td>
      <td>{{school.user.all}}</td>
{% endfor %}

В моем шаблоне я могу использовать {{school.user.all}}, чтобы получить Queryset, отображаемый с именем пользователя каждого пользователя, но мне нужны имя_и фамилия и фамилия, и я не могу понять, как это получить...

Спасибо за любые предложения. Я очень ценю ваше время!

Я смог добавить это к моей школьной модели, чтобы получить то, что я хотел:

    def director(self):
        test = ",".join([str(p) for p in self.user.all()])
        user = User.objects.get(username=test)
        return user.first_name + " " + user.last_name

СЛЕДУЕТ: если со "Школой" связано более одного пользователя, то отображается пусто

Вы должны включить пользователей в свой контекст.

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

Функция просмотра:

school = School.objects.get(pk=1)
users = school.user.all()

Последняя строка функции просмотра:

return render(request, 'school_users.html', {'users': users})

А в вашем шаблоне:

{% for user in users %}
  <tr>
  <td>{{ user.first_name }}</td>
  <td>{{ user.last_name }}</td>
  </tr>
{% endfor %}

Вы не указали свою модель User, поэтому я предположил, что она имеет first_name и last_name атрибуты.

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