首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是reverse()?

什么是reverse()?
EN

Stack Overflow用户
提问于 2012-06-28 17:26:53
回答 4查看 163.6K关注 0票数 276

当我有时阅读Django代码时,我在一些模板中看到了reverse()。我不太确定这是什么,但它与HttpResponseRedirect一起使用。这个reverse()应该如何使用,什么时候使用?

EN

回答 4

Stack Overflow用户

发布于 2019-10-22 17:40:55

现有的答案是相当清楚的。以防您不知道它为什么被称为reverse:它接受url名称的输入,并给出实际的url,这与先有一个url,然后再给它一个名称是相反的。

票数 13
EN

Stack Overflow用户

发布于 2016-04-09 10:25:33

该函数支持dry原则-确保您不会在整个应用程序中硬编码urls。一个url应该定义在一个地方,并且只有一个地方-你的url conf。在那之后,你真的只是参考了这些信息。

在给定视图路径或url配置文件中的page_name参数的情况下,使用reverse()提供页面的url。在模板中使用{% url 'my-page' %}没有意义的情况下,您可以使用它。

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

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

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

我使用reverse()的另一次是模型继承。我在父模型上有一个ListView,但是想要从这些父对象中的任何一个获取到它的相关子对象的DetailView。我将一个get__child_url()函数附加到父对象上,该函数标识子对象的存在,并使用reverse()返回其DetailView的url。

票数 4
EN

Stack Overflow用户

发布于 2012-06-28 17:35:01

有一个文档可以解决这个问题

https://docs.djangoproject.com/en/dev/topics/http/urls/#reverse-resolution-of-urls

它可用于为给定视图生成URL

主要优点是您不需要在代码中硬编码路由。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11241668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档