我的問題與as this question幾乎相同,只是所有關係都應該是多對多關係。如何在模型(Django)中描述m2m三連接表
我有以下類在我的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
)
- John Doe - 導演,作家,製作人
- 李四 - 執行製片人
- ...
這是我到目前爲止已經使用:
class MediaRole(models.Model):
media = models.ForeignKey(Media)
user = models.ForeignKey(Profile)
role = models.ForeignKey(Role)
但是,是不是有這樣做的什麼更好的辦法,而不是涉及在模型中創建一個單獨的類?
這是標準的解決方案。你認爲什麼是錯的?請詳細說明你不喜歡的事情。 – 2010-04-20 11:52:28
這不是我認爲它有什麼問題。我只是認爲會有另一種方式可以給我一些免費的功能,比如標準的ManyToManyField。 – jmagnusson 2010-04-20 13:39:04
它不是**簡單的多對多。這是一個罕見的例外情況。 – 2010-04-22 14:44:47