# HG changeset patch # User Peter Sanchez # Date 1504046731 25200 # Tue Aug 29 15:45:31 2017 -0700 # Node ID cd724eb338eef5ebe688cf6d35095be70c79212a # Parent 41fa72a22d19fec0063f81e572420e0d318d94a0 Adding ability to customize form guard field name diff --git a/form_guard/forms.py b/form_guard/forms.py --- a/form_guard/forms.py +++ b/form_guard/forms.py @@ -5,21 +5,27 @@ from .settings import FORM_GUARD_MIN_VALUE -class FormGuardForm(forms.Form): - antispam_ = forms.CharField( - widget=forms.HiddenInput(), - initial='default', - attrs={'id': 'id_antispam_'}) - ) +def clean_func(self): + antispam = self.cleaned_data.get('antispam') + if settings.DEBUG: + return antispam + try: + antispam = int(antispam) + except ValueError: + raise PermissionDenied + if antispam < FORM_GUARD_MIN_VALUE: + raise PermissionDenied + return antispam - def clean_antispam_(self): - antispam = self.cleaned_data.get('antispam') - if settings.DEBUG: - return antispam - try: - antispam = int(antispam) - except ValueError: - raise PermissionDenied - if antispam < FORM_GUARD_MIN_VALUE: - raise PermissionDenied - return antispam + +class FormGuardForm(forms.Form): + FORM_GUARD_FIELD_NAME = 'antispam' + + def __init__(self, *args, **kwargs): + super(FormGuardForm, self).__init__(*args, **kwargs) + self.fields[FORM_GUARD_FIELD_NAME] = forms.CharField( + widget=forms.HiddenInput(), + initial='default', + attrs={'id': 'id_{0}'.format(FORM_GUARD_FIELD_NAME)}) + ) + setattr(self, 'clean_{0}'.format(FORM_GUARD_FIELD_NAME), clean_func) diff --git a/form_guard/templates/form_guard/js_snippet.html b/form_guard/templates/form_guard/js_snippet.html --- a/form_guard/templates/form_guard/js_snippet.html +++ b/form_guard/templates/form_guard/js_snippet.html @@ -1,7 +1,7 @@