2013-06-16 2 views
0

Я получаю сообщение об ошибке NoReverseMatch at/user/login /, когда я нажимаю на страницу/пользователи/логин. Ниже, как мой код выглядитdjango noreversematch error при передаче аргументов

urls.py

url(r'^$', 'views.homepage', name='home'), 
    url(r'^user/login/$', 'coolstuff.views.login_view'), 

views.py

def login_view(request): 
    if request.method == 'POST': 
     username = request.POST['email'] 
     password = request.POST['password'] 
     user = authenticate(username=username, password=password) 
     if user is not None and user.is_active: 
     login(request, user) 
     return HttpResponseRedirect(request.GET.get("next")) 
     else: 
      login_error = "Your username and/or password are incorrect." 
      return HttpResponseRedirect(reverse('views.homepage', kwargs={'login_error': login_error})) 


def homepage(request, login_error=''): 
    return render_to_response(homepage.html, 
     {'login_error': login_error,}, 
     context_instance=RequestContext(request)) 

Итак, я хочу передать переменную login_error только тогда, когда пользователь вводит в неправильном имя пользователя или пароль , В любом другом случае домашняя страница вызывается без login_error. Я пытаюсь передать login_error в качестве дополнительной переменной в функцию просмотра, но получаю ошибку NoReverseMatch в/user/login /.

Как я могу это решить?

+0

Какую версию Django вы используете? –

+0

Я использую django 1.5 – Dev

+0

Можете ли вы разместить свой шаблон 'homepage.html'? –

ответ

2

Ваш взгляд не принимает никаких аргументов в шаблоне url, поэтому он терпит неудачу. Вам необходимо использовать messages framework, который предназначен для этого прецедента.

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