Django 中的反向和重定向有什么区别?

  • 本文关键字:区别 重定向 Django django
  • 更新时间 :
  • 英文 :


我正在做一个django项目,对reverse、reverse_lazy和redirect非常困惑。

重定向函数是否可以使用参数重定向?或者,每当我想发布参数时,我应该将方法更改为反向吗?

是否可以用参数重定向函数?

。想象一下,你有一个url模式:

path('foo/<str:bar>/<id:pk>/', name='some_path')

您可以使用重定向到该路径

return redirect('some_path', bar='value-for-bar', pk=1425)

对reverse、reverse_lazy和redirect非常困惑。

reversereverse_lazy确定给定视图名称的路径。该路径是字符串,而不是HTTP响应,您不能将此类字符串作为视图的结果返回。

redirect(…)函数[Django-doc]将在内部调用reverse(…)功能[Django-dc],并将结果封装在HttpResponseRedirect[Django-Dc]或HttpResponsePermanentRedirectDjango-doc]中。

因此,它将两层相互结合:url层用于计算路径,视图层用于构建HTTP响应,这就是为什么它在django.shortcuts模块[Django-doc]中定义的原因。

最新更新