Saltar al contenido

Cómo configurar settings.LOGIN_URL a un nombre de función de vista en Django 1.5+

Solución:

Django calcula esta URL en la función django.contrib.auth.views: redirect_to_login como:

resolved_url = resolve_url(login_url or settings.LOGIN_URL)

Por lo tanto, debe configurarlo como una cadena:

LOGIN_URL = 'my_app.views.sign_in'

También en settings.py puede usar la función reverse_lazy:

from django.core.urlresolvers import reverse_lazy
LOGIN_URL = reverse_lazy('my_app.views.sign_in')

https://docs.djangoproject.com/en/1.5/ref/urlresolvers/#reverse-lazy

Si no desea vincular el LOGIN_URL a la “vista” (puede cambiar en otra), luego puede vincular a la URL nombrada en settings.py:

from django.core.urlresolvers import reverse_lazy

LOGIN_URL = reverse_lazy('login')

donde “iniciar sesión” es algo como:

url(r'^accounts/login/$', 'my_app.view.Login', name="login"),

entonces, si cambia la vista en el otro, no necesita hacer cambios en settings.py

Suponiendo que ha establecido el nombre de la ruta en urls.py, puedes usar 'application_name:view_name' como el LOGIN_URL valor en settings.py, al igual que:

aplicación / urls.py

...
path('login/', views.login, name="login"),
...

proyecto / settings.py

LOGIN_URL = 'application:login'

https://docs.djangoproject.com/en/2.1/ref/settings/#login-url

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *