Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class IntegerField(Field):
- empty_strings_allowed = False
- default_error_messages = {
- 'invalid': _("This value must be an integer."),
- }
- description = _("Integer")
- def get_prep_value(self, value):
- if value is None:
- return None
- return int(value)
- def get_prep_lookup(self, lookup_type, value):
- if (lookup_type == 'gte' or lookup_type == 'lt') \
- and isinstance(value, float):
- value = math.ceil(value)
- return super(IntegerField, self).get_prep_lookup(lookup_type, value)
- def get_internal_type(self):
- return "IntegerField"
- def to_python(self, value):
- if value is None:
- return value
- try:
- return int(value)
- except (TypeError, ValueError):
- raise exceptions.ValidationError(self.error_messages['invalid'])
- def formfield(self, **kwargs):
- defaults = {'form_class': forms.IntegerField}
- defaults.update(kwargs)
- return super(IntegerField, self).formfield(**defaults)
- class BigIntegerField(IntegerField):
- empty_strings_allowed = False
- description = _("Big (8 byte) integer")
- MAX_BIGINT = 9223372036854775807
- def get_internal_type(self):
- return "BigIntegerField"
- def formfield(self, **kwargs):
- defaults = {'min_value': -BigIntegerField.MAX_BIGINT - 1,
- 'max_value': BigIntegerField.MAX_BIGINT}
- defaults.update(kwargs)
- return super(BigIntegerField, self).formfield(**defaults)
- class IPAddressField(Field):
- empty_strings_allowed = False
- description = _("IP address")
- def __init__(self, *args, **kwargs):
- kwargs['max_length'] = 15
- Field.__init__(self, *args, **kwargs)
- def get_internal_type(self):
- return "IPAddressField"
- def formfield(self, **kwargs):
- defaults = {'form_class': forms.IPAddressField}
- defaults.update(kwargs)
- return super(IPAddressField, self).formfield(**defaults)
- class NullBooleanField(Field):
- empty_strings_allowed = False
- default_error_messages = {
- 'invalid': _("This value must be either None, True or False."),
- }
- description = _("Boolean (Either True, False or None)")
Add Comment
Please, Sign In to add comment