2012-01-28 77 views
1

我正在尋找將自定義編寫的PHP CMS移植到Django中。 CMS目前具有的功能之一是圖像上傳功能。我寫一篇文章,給它加上信息標記,然後爲它選擇一張照片。如果系統中有任何照片被添加到與新照片相同的標籤中,那麼它也會爲該文章推薦照片。如果沒有匹配,則可以添加新圖像。Django自動建議匹配內容的策略

如果沒有任何意義,比方說,我將文章標記爲Bruce Springsteen,The BeatlesLed Zeppelin。下次我添加一個標籤爲The Beatles的文章時,應該建議我使用爲第一篇文章添加的圖像。

什麼是最好的Django適用的方式來實現呢?我已經看過Photologue應用程序並將其集成,並且我知道它具有標記支持(這裏的問題是我使用的是django-taggit,而Photologue支持django-tagging)。一種方法可以簡單地構建它自己 - 當用戶上傳文章時,我保存它以將標籤與圖像相關聯後運行一個鉤子。我只是不知道如何在基於該信息的管理工具中自動創建圖片。

任何想法/方法非常感謝。

+0

這聽起來像你在模型結束時確定 - 你將能夠選擇合適圖像的查詢集。你只需要知道如何構建一個管理工具小部件來顯示它們?通過管理工具你的意思是[django-admin-tools](https://bitbucket.org/izi/django-admin-tools/wiki/Home)? – dokkaebi 2012-01-28 20:39:16

回答

2

這幾乎可以肯定你將要建立自己的東西。 Django在這裏有一定數量的圖書館(你已經清楚地發現了)。與其他解決方案不同的是,它並沒有很多讓你100%滿意的解決方案(而像Drupal這樣的解決方案可能會讓你獲得100%的解決方案)。

什麼,你可能需要做的(高級別)是這樣的:

  • 創建一個AJAX認爲,以當前標籤作爲參數,並不會對現有員額進行查詢,看看哪些標籤匹配並返回來自這些帖子的圖片。在你看來
  • 使用jQuery/javascript來打電話給你的AJAX視圖中添加標籤頁上
  • 使用jQuery來更新您的網頁上<div>,並顯示您的視圖返回

這裏的所有圖片是一個similar example,可能有助於你開始。

您可能會考慮django-ajax作爲您的請求的幫助程序庫,但它絕對沒有必要。

+0

爲此歡呼。我想在Django的管理區域內完成所有這些工作,因此不確定在動態建議可以選擇的東西方面它有多靈活。我可能會重新考慮模型,但這些提示很有用 - 謝謝! – 2012-01-28 21:12:26

+0

是的,Django管理員會對你想要做的任何事情提出一個相當不變的挑戰。您可能可以覆蓋該模板並使用[上下文處理器](https://docs.djangoproject。com/en/dev/ref/templates/api /#subclassing-context-requestcontext),但我從來沒有試過在管理員那裏做這件事,所以我不知道它是否會起作用。可能值得考慮設計一個前端頁面來完成這項任務。 – 2012-01-29 02:01:23

1

你的圖像模塊和任何其他django模塊之間的鉤子可以使用django的contenttypes framework實現,它也提供了一些有用的實例方法來返回相關/掛鉤對象。