Как указать отношения ManyToMany в моделях Django, когда оба ключа являются первичными?

Я создаю модели Django и у меня возникла проблема с определением отношения ManyToMany, чтобы в базе данных была создана таблица объединения. Две модели, которые я пытаюсь объединить, выглядят следующим образом:

class Host(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio_information = models.ForeignKey(Bio, on_delete=models.CASCADE)

class Team(models.Model):
    name = models.CharField(max_length=50)
    creator = models.ForeignKey(Host, on_delete=models.CASCADE)

Нужно объединить их по первичным ключам, чтобы в итоге получилась объединенная таблица, которая выглядит следующим образом с именем таблицы host_team:

id int [PK]
host_id int 
team_id int

Поскольку вы не включаете ID при создании моделей, как мне обозначить отношения MtoM и заставить django создать таблицу join?

Вы не можете использовать соединение с M2M-отношениями.

Вы используете prefetch_related. Он выполнит дополнительный запрос и сохранит результат в кэше.

В этом случае ваш код будет выглядеть следующим образом:

queryset = Team.objects.all().prefetch_related("creator")

Подробнее вы можете прочитать здесь: https://docs.djangoproject.com/en/4.1/ref/models/querysets/#prefetch-related

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