我是django的新手。 我有兩個簡單的對象,我們可以稱它們爲 - 文件和文件組: - 一個文件組可以容納一個文件列表,根據'訂單'字段排序。 - 每個文件可以與多個組相關聯。單向一對多和多對多可能在django
所以基本上,分貝表將是:1 )文件 ,其具有除FK到文件和文件組命名爲「順序」第2列)File_Group 3)File_Group_Mapping表。
有一個多一對多的關係在這裏,但文件對象不應該是知道存在該文件組的(對我來說沒有任何意義)
我的問題的 - 是有沒有辦法在這裏創建一個單向的多對多/一對多的關係?我如何用django建模?
我找不到通過django使其成爲單向的方法。 我看到一個使用類似的解決方案 -
class FileGroup(...):
files = models.ManyToManyField(File, through='FileGroupMapping')
,但這樣會使文件對象知道文件組。
我也可以通過映射表File_Group_Mapping做到這一點的模型文件中像這樣 -
class FileGroupMapping(...):
files = models.ForeignKey(File)
groups = models.ForeignKey(FileGroup)
order = models...
什麼是做到這一點通過Django的最佳方法是什麼?
謝謝
謝謝。有沒有辦法讓它變成單向的? 我和Hibernate一起工作了好幾年,真的很喜歡他們的雙向/單向關係方法。我在django中找不到類似的方法。 – Liz 2010-07-07 13:47:01
我不認爲這個概念真的適用於Django。無論您使用的是什麼架構,這看起來都是非常標準的M2M關係。你關心的是什麼? – 2010-07-07 15:56:43
我擔心的是,在我的應用程序邏輯中,文件不應該知道文件組的存在 - 所以我想避免雙向關係。這不是一個技術問題,而是一個概念。 – Liz 2010-07-08 06:40:11