我正在閱讀django開發文檔。 Here它說,不再推薦裝飾者,在你的get_absolute_url
方法中使用reverse來爲模型實例生成完整的url(滾動上面的一小部分並檢出警告框)。爲什麼在django中不再推薦permalink裝飾器?
我認爲這是違反幹,我們必須使用每一個我們需要時間恢復。那麼使用永久鏈接有什麼問題?爲什麼不再推薦?
我正在閱讀django開發文檔。 Here它說,不再推薦裝飾者,在你的get_absolute_url
方法中使用reverse來爲模型實例生成完整的url(滾動上面的一小部分並檢出警告框)。爲什麼在django中不再推薦permalink裝飾器?
我認爲這是違反幹,我們必須使用每一個我們需要時間恢復。那麼使用永久鏈接有什麼問題?爲什麼不再推薦?
在Django的當前版本,裝飾字面上調用reverse
功能,文檔推薦反正。原因似乎是,現在我們有reverse()
,裝飾者是不必要的。使用reverse
確實比返回名稱,元組和字典好看多了。相反,你使用args和kwargs - 慣用的python。
而this is the ticket所討論棄用爲API純度起見裝飾。他們沒有提出警告並讓用戶更新代碼庫,而是決定只是在文檔中發出警告。
permalink decorator應該被棄用並最終被刪除。 它被引入來解決必須將url硬編碼爲get_absolute_url的問題。然而它違反了好裝飾者的主要規則之一,因爲強制功能簽名爲了處理它被裝飾的事實而改變。此外,它並不提供任何有用的功能,而不是直接在get_absolute_url內使用reverse()。從django的DOC
摘錄: 「這個裝飾(永久)採用URL模式的*名稱*(或者是圖名或URL模式名稱)和位置或關鍵字參數列表,並使用URL配置模式來構建正確的完整URL。「 如何使用永久鏈接傷害幹嗎?我們仍然以url名稱或視圖路徑提供@permalink,而不必重新聲明它? – Aleyna 2013-04-20 04:41:42
你是對的 - 我沒有正確閱讀文檔就寫了答案。我會做一些研究,看看我能否改變我的答案。 – 2013-04-20 04:51:54
謝謝喬希。我無法找到這個,我相信該文件沒有提到它已被棄用。 – Aleyna 2013-04-20 16:04:03