我已阅读完Django URL 调度程序方法的文档。reverse()
什么时候有用?
谢谢!
该函数支持干原则- 确保您不会在整个应用程序中对 url 进行硬编码。一个 url 应该在一个地方定义,而且只有一个地方 - 你的url conf。之后,您实际上只是在引用该信息。
用于reverse()
为您提供页面的 url,给定视图的路径或page_name
url conf 中的参数。如果在模板中使用{% url 'my-page' %}
.
您可以在很多地方使用此功能。我发现我使用它的一个地方是在视图中重定向用户时(通常在成功处理表单之后) -
return HttpResponseRedirect(reverse('thanks-we-got-your-form-page'))
您也可以在编写模板标签时使用它。
我使用的另一次reverse()
是模型继承。我有ListView
一个父模型,但想从这些父对象中的任何一个获取DetailView
它的关联子对象。get__child_url()
我向父级附加了一个函数,该函数识别了一个子级的存在并返回了它正在DetailView
使用的 url reverse()
。
reverse() 函数在 django 中用于在您的视图中实现符合 DRY 的 url。在这里找到更清晰的解释
当您想通过名称解析视图以及代码中 URL 的参数时,可以使用它。{% url %}
它是模板标签的后端。