Мой вопрос почти такой же , как и этот вопрос , за исключением того, что ВСЕ отношения должны быть "многие ко многим."
В моем файле models.py (несколько упрощенно) есть следующие классы:
class Profile(models.Model):
# Extending the built in User model
user = models.ForeignKey(User, unique=True)
birthday = models.DateField()
class Media(models.Model):
title = models.CharField(max_length=200)
description = models.TextField(max_length=2000)
class Role(models.Model):
name = models.CharField(max_length=50)
Я хочу соединительную таблицу, которая выглядит примерно так:
CREATE TABLE `media_roles` (
`media_id` bigint(20) unsigned NOT NULL,
`profile_id` bigint(20) unsigned NOT NULL,
`role_id` bigint(20) unsigned NOT NULL
)
- Джон Доу - Режиссер, Сценарист, Продюсер
- Джейн Доу - исполнительный продюсер
- ...
Это то, что я использовал до сих пор:
class MediaRole(models.Model):
media = models.ForeignKey(Media)
user = models.ForeignKey(Profile)
role = models.ForeignKey(Role)
Но разве нет лучшего способа сделать это, не включая создание отдельного класса в модели?