2013-10-23 42 views
0

我正在尋找一種靈活的方法來引用另一個cmsplugin中的一個cmsplugin,以便允許用戶在它們之間創建鏈接。從另一個cmsplugin引用cmsplugin

這一定是一個非常普遍的問題,所以應該有一個標準的解決方案。但我找不到它。

我目前的想法是添加一個字段到我的cmsplugin模型(在我的情況下)ManyToManyField指向類似CMSPluginBase的東西。然後人們必須設置選項limit_choices_to並以選項以人可讀的方式顯示的方式呈現表單。但我想避免重新發明輪子。

+0

我不認爲這是如你所想的那麼普遍。我還沒有看到任何這樣做,所以你的解決方案是一個很好的方法去做。 –

回答

0

我通過使用title字段作爲我的CMSPlugin對象的唯一標識符來解決我的問題。在查找相關對象時,我首先獲取它們的標題,然後執行一個查詢,收集具有發佈的正確標題和語言的所有對象。當然,這不是一個好的解決方案。

有一個標準的方式來處理CMSPlugin模型中的關係。應該定義一個copy_related方法,如解釋here。但是當這種關係指向另一個CMSPlugin時,這個解決方案對我來說並不是很明顯。這是由於頁面草稿轉換爲已發佈頁面的機制。