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