Djang中的名称空间Url解析问题

2024-04-28 07:07:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写的邀请应用程序中存在url解析问题

本质上,我有一个重定向视图,它将经过身份验证的用户重定向到仪表板(如果他们是员工),或者重定向到邀请页面(如果他们不是员工)。够简单吧

但是,无论用户是否是员工,都会将用户重定向到邀请视图

冒烟的枪是response.resolver\u匹配的值,我在一个单元测试中使用了它

ResolverMatch(func=invitation.views.invitation, args=(), kwargs={'invitation_name': 'dashboard'}, url_name=invitation, app_names=[], nam
espaces=['invitation'])

最奇怪的是,如果我真的以工作人员身份登录,浏览器url是/invitation/dashboard/

这是我的URL.py

urlpatterns = [
url(r'^invitation/', include("invitation.urls", namespace="invitation")),
url(r'^login-redirect/$', login_redirect, name="login_redirect"),
url(r'^$',
    login,
    {"template_name": "invitation/login.html"},
    name="login"),
]

邀请.url

urlpatterns = [
url(r'(?P<invitation_name>[\w]+)/$', views.invitation, name="invitation"),
url(r'add-invitation/$', views.add_invitation, name="add_invitation"),
url(r'dashboard/$', views.dashboard, name="dashboard"),
]

登录\重定向视图

@login_required
def login_redirect(request):
    if request.user.is_staff:
        return redirect(reverse("invitation:dashboard"))
    else:
        return redirect(
            reverse("invitation:invitation",
            args=[request.user.username]))

我对这件事没什么想法了…真奇怪。我不明白

感谢您的帮助:)


Tags: 用户nameadd视图urlrequest员工args
1条回答
网友
1楼 · 发布于 2024-04-28 07:07:57

小心贪婪的url

urlpatterns = [
    url(r'dashboard/$', views.dashboard, name="dashboard"),
    url(r'(?P<invitation_name>[\w]+)/$', views.invitation, name="invitation"),
    url(r'add-invitation/$', views.add_invitation, name="add_invitation"),
]

只需重新组织URL即可

相关问题 更多 >