2011-06-08 1 views
0

Итак, все, что я хочу сделать, это перенаправить пользователя на страницу входа в систему на основе некоторой логики на мой взгляд. Я пробовал:Как правильно изменить вход в систему Django?

reverse('django.contrib.auth.views.login') 

, и я также пытался создать уникальную запись в urls.py моего приложения

from django.contrib.auth.views import login 
urlpatterns = patterns('', 
    url(r'^login/', login, name='my-login'), 
) 

Тогда на мой взгляд

reverse('my-login') 

но они оба дают мне ошибка NoReverseMatch.

Каков правильный способ сделать это?

+0

Полный urlconf? Возможно, вы вставили эту часть для входа, как-то неправильно. Также попробуйте '' my_login'' вместо '' my-login''. Не уверен, что это имеет значение, но я всегда использую подчеркнутые имена, –

+0

@Torsten Hyphens тоже в порядке. – DrTyrsa

+0

Хорошо. Так что да, в конце концов, это строка. :) –

ответ

3

В ваших URL-адресах определенно что-то не так. Я могу полностью изменить шаблон URL-адреса авторизации для входа в систему:

from django.core.urlresolvers import reverse 
print reverse('django.contrib.auth.views.login') 
+0

Я отмечаю ваш ответ, потому что вы напомнили мне, как легко отладить эту проблему. Вышеупомянутое все еще не работает, но я понял, что когда я думал, что обновляю свои urls.py, изменения, которые никогда не попадают на сервер. Поэтому добавление именованного шаблона url действительно работало, когда я фактически использовал его. Мне просто нужно было войти в оболочку и использовать несколько точек разлома pdb, чтобы понять это. –

+0

Спасибо, Джош, и рад, что у вас возникла проблема. – Brandon

+0

Для этого решения вам понадобится что-то подобное в urls.py: 'url (r '^ login/$', 'django.contrib.auth.views.login'),' right? – chrishiestand

 Смежные вопросы

  • Нет связанных вопросов^_^