Facebook
From Gruff Dove, 6 Years ago, written in Python.
Embed
Download Paste or View Raw
Hits: 277
  1. class ConversionMixin:
  2.     converters = []
  3.  
  4.     def clean(self, raw_value):
  5.         for converter in self.converters:
  6.             raw_value = converter(raw_value)
  7.  
  8.         return super().clean(raw_value)
  9.  
  10.  
  11. def with_converters(field, *converters, **field_kwargs):
  12.     class_name = 'Conversion{}'.format(field.__name__)
  13.     new_class = type(class_name, (ConversionMixin, field), {'converters': converters})
  14.     return partial(new_class, **field_kwargs)
  15.