25 lines
891 B
Python
25 lines
891 B
Python
|
from random import shuffle
|
||
|
|
||
|
from django.forms import ChoiceField
|
||
|
|
||
|
CAPTCHA_CHOICES = [('two', 'zorp borp'),
|
||
|
('three', 'quop bop'),
|
||
|
('four', 'NO, I AM NOT A ROBOT'),
|
||
|
('five', 'crackle zop'),
|
||
|
('six', '*rusty screech*'),
|
||
|
('seven', 'mother, give me legs')]
|
||
|
shuffle(CAPTCHA_CHOICES)
|
||
|
CAPTCHA_CHOICES.insert(0, ('one', 'beep boop'),)
|
||
|
NOT_A_ROBOT = 'four'
|
||
|
|
||
|
def validate_captcha(captcha):
|
||
|
if captcha != NOT_A_ROBOT:
|
||
|
raise ValidationError('Are you sure you are not a robot?')
|
||
|
|
||
|
class CaptchaField(ChoiceField):
|
||
|
def __init__(self):
|
||
|
super().__init__(choices=CAPTCHA_CHOICES,
|
||
|
label='are you a robot?',
|
||
|
help_text='pick the response that indicates whether or not you are a robot.',
|
||
|
validators=(validate_captcha,))
|