/ / Problema con la resolución de URL de espacio de nombres en Django - python, django, django-admin, django-views, url-routing

Problema con la resolución de URL de espacio de nombres en Django: python, django, django-admin, django-views, url-routing

Estoy teniendo un problema con la resolución de url en una aplicación de invitación que estoy escribiendo.

Esencialmente tengo una vista de redireccionamiento que redirige a un usuario autenticado a un panel de control si son personal, o a una página de invitación si no son personal. Bastante simple ¿verdad?

Sin embargo, ya sea que el usuario sea o no personal, el usuario se redirige a la vista de invitación.

La pistola humeante es el valor de response.resolver_match que obtuve en una de mis pruebas de unidad

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

Lo más extraño es que si inicio sesión como miembro del personal, la url del navegador es / invitation / dashboard /

Aquí están mis urls.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"),
]

invitation.urls

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"),
]

vista login_redirect

@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]))

Me he quedado sin ideas sobre esto ... es raro. No lo entiendo.

Cualquier ayuda es apreciada :)

Respuestas

0 para la respuesta № 1

Cuidado con el url codicioso ...

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"),
]

Reorganizar las URL fue todo lo que necesitó.