2010-11-09 58 views
1

我試圖在Django中創建一對多關係。在我的例子中,我有一個新聞帖子,可能有幾張圖片與它關聯。但是,不同的新聞帖子永遠不會共享圖片。Django中的一對多關係

據我所看到的,有兩種方法可以做到這一點:通過ManyToManyField,它會在管理面板多選工具,顯示所有圖像曾經在PostImage上傳,或通過ForeignKeyField類,這導致在管理面板上創建新的新聞帖子時沒有任何添加新圖像的選項。

由於管理面板的用戶將無法在所有技術上傾斜,我想兩件事情,如果可能的話:

  • 「創建新的新聞信息」頁面上添加幾個圖像,而不必來自其他新聞帖子的任何圖像作爲選擇
  • 不太重要的是,用複選框替代多選框,或者比多選框更容易混淆。

我該如何做到這一點?

回答

3

第二部分是比較容易之一: 您希望horizontal javascript filter

如果你用ManyToManyField去,你可以通過使用Custom Manager過濾那些選擇。

如果使用ForeignKey,則需要使用Admin Inlines之一。如果您真的從不重複使用圖像,請使用內聯。

+0

非常好,謝謝。我更喜歡Manager解決方案。對於任何後期需要它的人員,自定義管理器的文檔可從以下網址獲得:http://docs.djangoproject.com/en/dev/topics/db/managers/#custom-managers – 2010-11-09 21:44:45

+0

很高興能夠提供幫助。 :) – 2010-11-09 21:48:16