forms.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from django.utils.translation import ugettext_lazy as _
  2. from django.forms import * # noqa
  3. from django.forms import Form as BaseForm, ModelForm as BaseModelForm
  4. def YesNoSwitch(**kwargs):
  5. if 'initial' not in kwargs:
  6. kwargs['initial'] = 0
  7. return TypedChoiceField(
  8. coerce=int,
  9. choices=((1, _("Yes")), (0, _("No"))),
  10. widget=RadioSelect(attrs={'class': 'yesno-switch'}),
  11. **kwargs)
  12. class AutoStripWhitespacesMixin(object):
  13. autostrip_exclude = []
  14. def full_clean(self):
  15. self.data = self.data.copy()
  16. for name, field in self.fields.iteritems():
  17. if (field.__class__ == CharField and
  18. not name in self.autostrip_exclude):
  19. try:
  20. self.data[name] = self.data[name].strip()
  21. except KeyError:
  22. pass
  23. return super(AutoStripWhitespacesMixin, self).full_clean()
  24. class Form(AutoStripWhitespacesMixin, BaseForm):
  25. pass
  26. class ModelForm(AutoStripWhitespacesMixin, BaseModelForm):
  27. pass