Skip to content

Instantly share code, notes, and snippets.

@madneon
Created February 21, 2019 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save madneon/147159f46ed478c71d5ee4950a9d697d to your computer and use it in GitHub Desktop.
Save madneon/147159f46ed478c71d5ee4950a9d697d to your computer and use it in GitHub Desktop.
class RangedIntegerField(models.IntegerField):
def __init__(self, min_value=None, max_value=None, **kwargs):
self.min_value = min_value
self.max_value = max_value
if 'validators' in kwargs:
validators = kwargs['validators']
else:
validators = []
if min_value:
validators.append(MinValueValidator(min_value))
if max_value:
validators.append(MaxValueValidator(max_value))
kwargs['validators'] = validators
super(RangedIntegerField, self).__init__(**kwargs)
def formfield(self, **kwargs):
context = {'min_value': self.min_value, 'max_value': self.max_value}
context.update(kwargs)
return super(RangedIntegerField, self).formfield(**context)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment