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)
實際上它的收益與調用「userena_disabled」網址以「用戶名」參數 – 2014-11-09 07:55:28