2012-07-07 96 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

相關問題