How to properly reverse the Django auth login?
Ok, so all I want to do is to redirect the user to the login page based on some logic in my view. I've tried:
reverse('django.contrib.auth.views.login')
and I've also tried creating a unique entry in my app's urls.py
from django.contrib.auth.views import login
urlpatterns = patterns('',
url(r'^login/', login, name='my-login')开发者_如何学C,
)
Then in my view
reverse('my-login')
but they both give me a NoReverseMatch error.
What is the proper way to do this?
There's definitely something wrong elsewhere in your urls. I'm able to reverse the auth login url pattern just fine:
from django.core.urlresolvers import reverse
print reverse('django.contrib.auth.views.login')
Use the admin
URL namespace to get the login URL:
>>> from django.urls import reverse
>>> reverse('admin:login')
'/admin/login/'
See the relevant section of Django documentation. URL namespaces have been available since Django 1.1.
for django 3.1:
urlpatterns = [
....
path('login/', admin.site.login),
....
]
精彩评论