1

我已阅读完Django URL 调度程序方法的文档。reverse()

什么时候有用?

谢谢!

4

3 回答 3

6

该函数支持干原则- 确保您不会在整个应用程序中对 url 进行硬编码。一个 url 应该在一个地方定义,而且只有一个地方 - 你的url conf。之后,您实际上只是在引用该信息。

用于reverse()为您提供页面的 url,给定视图的路径或page_nameurl conf 中的参数。如果在模板中使用{% url 'my-page' %}.

您可以在很多地方使用此功能。我发现我使用它的一个地方是在视图中重定向用户时(通常在成功处理表单之后) -

return HttpResponseRedirect(reverse('thanks-we-got-your-form-page'))

您也可以在编写模板标签时使用它。

我使用的另一次reverse()是模型继承。我有ListView一个父模型,但想从这些父对象中的任何一个获取DetailView它的关联子对象。get__child_url()我向父级附加了一个函数,该函数识别了一个子级的存在并返回了它正在DetailView使用的 url reverse()

于 2013-01-22T07:09:48.097 回答
3

reverse() 函数在 django 中用于在您的视图中实现符合 DRY 的 url。在这里找到更清晰的解释

于 2015-05-29T16:13:02.220 回答
2

当您想通过名称解析视图以及代码中 URL 的参数时,可以使用它。{% url %}它是模板标签的后端。

于 2013-01-22T07:04:14.460 回答