2012-07-07 99 views
1

现在我有这些模型:电影,MovieFormat(例如,DVD,蓝光等),地区,我想这些之间的关系来存储(电影,MovieFormat,地区,日期)元组(电影发行)我如何定义Django中3个模型之间的多对多关系?

我可以通过具有格式和日期字段的另一个模型在电影引用区域上放置多对多字段,但似乎并不像这样做的“正确”方式。

回答

1

我完全不明白你想要做什么,但我认为你是以错误的方式看到这个。

有了想法,我有什么是电影的心(我试图想在这里面向对象),你应该用的是这样的:

class Movie(models.Model): 
    format = models.ForeignKey(MovieFormat) 
    region = models.ForeignKey(Region) 
    date = models.Datefield() 
    ... other fields you want, like title for instance 

有了这样一个模型,你可以在你的数据库中存储数据(现在停止思考对象),不同格式的电影(格式存储在其他表格中,这样你的数据库就会正常化),每部电影的不同区域和日期(区域和格式相同)。

这是你想要的吗?如果没有,尝试更加具体与您的问题...添加例如与一些电影和他们与地区和格式关系......

编辑:

现在我看你想要什么。我不知道到底如何命名模型我要去加,但我敢肯定你会找到一个适当的名称:

class Movie(models.Model): 
    ... fields that you want for a movie, like foreing key to a producer for instance 

class MovieEdition(models.Model): 
    movie = models.ForeignKey(Movie) 
    format = models.ForeignKey(MovieFormat) 
    region = models.ForeignKey(Region) 
    date = models.Datefield() 
    ... other fields, like movie title for that region (the related region) 

希望它能帮助!干杯!

+0

我不希望格式/区域/日期成为电影模型本身的字段,因为同一部电影可能会在某天出现在欧洲的DVD上,几个月后出现在北美,或者它可以首先在DVD上出现,然后在蓝光等等 – Bwmat 2012-07-07 03:52:00

+0

这是有道理的。我正在推翻它。 – Bwmat 2012-07-07 04:12:31

相关问题