/ / Problème avec la résolution d'URL de namespaced dans Django - python, django, admin-django, django-vues, routage d'URL

Problème lié à la résolution des URL dans namespaced sous Django

J'ai un problème de résolution d'url dans une application d'invitation que je suis en train d'écrire.

J'ai essentiellement une vue de redirection qui redirige un utilisateur authentifié vers un tableau de bord s'il s'agit d'un membre du personnel ou vers une page d'invitation s'il ne s'agit pas d'un membre du personnel. Assez simple non?

Toutefois, que l'utilisateur soit membre du personnel ou non, il est redirigé vers la vue d'invitation.

Le pistolet fumant est la valeur de response.resolver_match que j'ai tirée dans l'un de mes tests unitaires

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

Le plus étrange, c’est que si je me connecte en tant que membre du personnel, l’URL du navigateur est / invitation / dashboard /

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

login_redirect voir

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

Je suis tout à court d’idées sur ça… c’est bizarre. Je ne comprends pas.

Toute aide est appréciée :)

Réponses:

0 pour la réponse № 1

Attention à l'url gourmande ...

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

Réorganiser les urls était tout ce qu'il fallait.