Django:如何从请求中获取URL视图名称?

ep6jt1vc  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(159)

在Django的url配置中,你可以使用url“view names”来帮助各种活动,比如重定向。下面是urls.py文件示例(最后的name参数):

urlpatterns = [
    path('', views.home_view, name='home'),
    path('search/', views.search_view, name='search'),
    ....

现在,在我的Django视图函数中,我想检查当前的request对象,以发现当前请求的当前url“view name”。这对于创建可以从多个视图调用的通用“处理程序”函数(或者更好地在视图装饰器中使用)非常有用。
这将允许您的通用功能重定向到当前页面的POST请求,例如。但是通过redirect()重定向需要知道您想要重定向到的“视图名称”。
如何通过检查当前request找到“视图名称”?

q9yhzks0

q9yhzks01#

你可以通过调用resolve()来发现当前的url“view name”,传递当前的请求路径。它返回一个ResolverMatch对象,该对象具有一个包含当前“视图名称”的view_name属性。

from django.urls import resolve

def my_view(request):
    current_view_name = resolve(request.path).view_name

然后你可以重定向类似于...

return redirect(current_view_name, **kwargs)

相关问题