- def __init__(self, question, *args, **kwargs):
- super(AnswerForm, self).__init__(*args, **kwargs)
+ def __init__(self, data=None, user=None, *args, **kwargs):
+ super(AnswerForm, self).__init__(data, *args, **kwargs)
+
+ if int(user.reputation) < settings.CAPTCHA_IF_REP_LESS_THAN and not (user.is_superuser or user.is_staff):
+ spam_fields = call_all_handlers('create_anti_spam_field')
+ if spam_fields:
+ spam_fields = dict(spam_fields)
+ for name, field in spam_fields.items():
+ self.fields[name] = field
+
+ self._anti_spam_fields = spam_fields.keys()
+ else:
+ self._anti_spam_fields = []