2014-11-09 59 views
0

我正在使用Django中的页面登录,但我正在使用Userena。我已在下面的Userena中附加了用于登录的查看方法。问题是,因为我之前写过的所有观点都比较简短。我在试图弄清楚在这种方法中我会添加一些内容来“在密码错误时执行某些操作”时遇到问题。理想情况下,我想要做的是如果密码错误,在JavaScript中触发一个弹出窗口。我猜我首先必须添加一些东西到这个视图方法,表明密码是错误的,但?在这个登录视图中,哪里发出'错误密码'信号?

@secure_required 
def signin(request, auth_form=AuthenticationForm, 
      template_name='userena/signin_form.html', 
      redirect_field_name=REDIRECT_FIELD_NAME, 
      redirect_signin_function=signin_redirect, extra_context=None): 


    form = auth_form() 

    if request.method == 'POST': 
     form = auth_form(request.POST, request.FILES) 
     if form.is_valid(): 
      identification, password, remember_me = (form.cleaned_data['identification'], 
                form.cleaned_data['password'], 
                form.cleaned_data['remember_me']) 
      user = authenticate(identification=identification, 
           password=password) 
      if user.is_active: 
       login(request, user) 
       if remember_me: 
        request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400) 
       else: request.session.set_expiry(0) 

       if userena_settings.USERENA_USE_MESSAGES: 
        messages.success(request, _('You have been signed in.'), 
            fail_silently=True) 

       #send a signal that a user has signed in 
       userena_signals.account_signin.send(sender=None, user=user) 
       # Whereto now? 
       redirect_to = redirect_signin_function(
        request.REQUEST.get(redirect_field_name), user) 
       return HttpResponseRedirect(redirect_to) 
      else: 
       return redirect(reverse('userena_disabled', 
             kwargs={'username': user.username})) 

    if not extra_context: extra_context = dict() 
    extra_context.update({ 
     'form': form, 
     'next': request.REQUEST.get(redirect_field_name), 
    }) 
    return ExtraContextTemplateView.as_view(template_name=template_name, 
              extra_context=extra_context)(request) 

回答

0

存在或支票用户不喜欢:

if user: 
    if user.is_active: 
     login(request,user) 
    else: 
     # account disabled 
else: 
    #invalid login detailed 
    return response 
+0

实际上它的收益与调用“userena_disabled”网址以“用户名”参数 – 2014-11-09 07:55:28