我如何定义Django中3+模型之间的大量关系?

2024-06-09 22:47:33 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我有这些模型:Movie,MovieFormat(例如,dvd,bluray,等等),Region,我想在它们之间建立一个关系来存储(Movie,MovieFormat,Region,Date)元组(Movie releases)

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


Tags: 模型区域date电影关系格式movieregion
1条回答
网友
1楼 · 发布于 2024-06-09 22:47:33

我不完全明白你想做什么,但我认为你看得不对。你知道吗

根据我对什么是电影的想法(我试图在这里考虑面向对象),您应该使用以下内容:

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)

希望有帮助!干杯!你知道吗

相关问题 更多 >