Using a captchaΒΆ
Using https://github.com/mbi/django-simple-captcha you do the following:
Change axes lockout url in
settings.py
:AXES_LOCKOUT_URL = '/locked'
Add the url in
urls.py
:url(r'^locked/$', locked_out, name='locked_out'),
Create a captcha form:
class AxesCaptchaForm(forms.Form): captcha = CaptchaField()
Create a captcha view for the above url that resets on captcha success and redirects:
def locked_out(request): if request.POST: form = AxesCaptchaForm(request.POST) if form.is_valid(): ip = get_ip_address_from_request(request) reset(ip=ip) return HttpResponseRedirect(reverse_lazy('signin')) else: form = AxesCaptchaForm() return render_to_response('locked_out.html', dict(form=form), context_instance=RequestContext(request))
Add a captcha template:
<form action="" method="post"> {% csrf_token %} {{ form.captcha.errors }} {{ form.captcha }} <div class="form-actions"> <input type="submit" value="Submit" /> </div> </form>