2014-11-09 16 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