现在我有这些模型:电影、电影格式(例如,dvd、蓝光等)、区域,我想在这些模型之间建立关系以存储(电影、电影格式、区域、日期)元组(电影发行)
我可以通过另一个具有格式和日期字段的模型在电影引用区域上放置一个多对多字段,但这似乎不是这样做的“正确”方法。
我不完全理解您要做什么,但我认为您以错误的方式看待这一点。
有了我关于什么是电影的想法(我试图在这里考虑面向对象),你应该使用的是这样的:
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)
希望能帮助到你!干杯!