2013-04-20 95 views
4

我正在阅读django开发文档。 Here它说,不再推荐装饰者,在你的get_absolute_url方法中使用reverse来为模型实例生成完整的url(滚动上面的一小部分并检出警告框)。为什么在django中不再推荐permalink装饰器?

我认为这是违反干,我们必须使用每一个我们需要时间恢复。那么使用永久链接有什么问题?为什么不再推荐?

回答

10

在Django的当前版本,装饰字面上调用reverse功能,文档推荐反正。原因似乎是,现在我们有reverse(),装饰者是不必要的。使用reverse确实比返回名称,元组和字典好看多了。相反,你使用args和kwargs - 惯用的python。

this is the ticket所讨论弃用为API纯度起见装饰。他们没有提出警告并让用户更新代码库,而是决定只是在文档中发出警告。

permalink decorator应该被弃用并最终被删除。 它被引入来解决必须将url硬编码为get_absolute_url的问题。然而它违反了好装饰者的主要规则之一,因为强制功能签名为了处理它被装饰的事实而改变。此外,它并不提供任何有用的功能,而不是直接在get_absolute_url内使用reverse()。从django的DOC

+1

摘录: “这个装饰(永久)采用URL模式的*名称*(或者是图名或URL模式名称)和位置或关键字参数列表,并使用URL配置模式来构建正确的完整URL。“ 如何使用永久链接伤害干吗?我们仍然以url名称或视图路径提供@permalink,而不必重新声明它? – Aleyna 2013-04-20 04:41:42

+0

你是对的 - 我没有正确阅读文档就写了答案。我会做一些研究,看看我能否改变我的答案。 – 2013-04-20 04:51:54

+0

谢谢乔希。我无法找到这个,我相信该文件没有提到它已被弃用。 – Aleyna 2013-04-20 16:04:03

相关问题