Django ListView через отношения моделей

Я читал здесь и не могу найти ответ на вопрос, который я ищу. Возможно, я задаю неправильный вопрос.

У меня есть три модели. Рекрутер Офис Рекрут

Рекрутеры назначены в несколько офисов, и в каждом офисе есть несколько сотрудников. Мне нужно создать представление списка, в котором будут перечислены все сотрудники, связанные с рекрутером. То есть что-то вроде этого:

Рекрутеру 1 назначен офис 1 и 2. В офисе 1 работают сотрудники 1,2,3. В офисе 2 работают сотрудники 3,4,5

Вид списка должен отображать всех сотрудников в разделе Recruiter 1.

Мои модели:

class Recruit(models.Model):
   id = models.CharField(max_length=25,primary_key=True, unique=True)
   first_name = models.CharField(max_length=50)
   last_name = models.CharField(max_length=50)
   mobile_phone = models.CharField(max_length=20,null=True)
   preferred_phone = models.CharField(max_length=20,null=True)
   email= models.CharField(max_length=100,null=True)
   officeid = models.ForeignKey(Office,on_delete=models.DO_NOTHING,related_name="recruit")

class Office(models.Model):
   office_name = models.CharField(max_length=100)
   officeid = models.CharField(max_length=20,primary_key=True,unique=True)

class Recruiter(models.Model):
   user = models.OneToOneField(User, related_name='recruiter',on_delete=models.CASCADE)
   organization = models.ForeignKey(UserProfile,on_delete=models.CASCADE)

Нужна ли мне таблица AssingedOffices для объединения всего этого вместе?

class AssignedOffice(models.Model):
   user = models.ForeignKey(UserProfile,on_delete=models.CASCADE)
   esa_office = models.ForeignKey(Office,on_delete=models.CASCADE)

Просто не уверен, как соединить их и отобразить в listview.

  1. Если вы хотите достичь отношений "многие к одному", подобных этим

Рекрутеры назначены в несколько офисов

то у вас должно быть ForeignKey в модели Office, а не наоборот. Я предполагаю, что каждый Office имеет один Recruiter. В противном случае у вас должно быть отношение "многие-ко-многим", которое строится с помощью ManyToManyField

  1. Я предполагаю, что по

в каждом офисе работает несколько сотрудников

Вы имели в виду, что каждый Office объект имеет несколько Recruit объектов

  1. Если вы хотите перечислить все Recruit объекты в ListView для модели Recruiter, то я думаю, что самым простым способом будет добавить поле ForeignKey в модель Recruit и ссылаться на него через ссылку на объект
  2. .
Вернуться на верх