Changeset 6357
- Timestamp:
- 09/16/07 06:38:32 (10 months ago)
- Files:
-
- django/trunk/django/db/models/fields/__init__.py (modified) (1 diff)
- django/trunk/django/newforms/fields.py (modified) (2 diffs)
- django/trunk/docs/newforms.txt (modified) (2 diffs)
- django/trunk/tests/regressiontests/forms/tests.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/fields/__init__.py
r6252 r6357 881 881 validators.isValidIPAddress4(field_data, None) 882 882 883 def formfield(self, **kwargs): 884 defaults = {'form_class': forms.IPAddressField} 885 defaults.update(kwargs) 886 return super(IPAddressField, self).formfield(**defaults) 887 883 888 class NullBooleanField(Field): 884 889 empty_strings_allowed = False django/trunk/django/newforms/fields.py
r6285 r6357 27 27 'ChoiceField', 'NullBooleanField', 'MultipleChoiceField', 28 28 'ComboField', 'MultiValueField', 'FloatField', 'DecimalField', 29 'SplitDateTimeField', 29 'SplitDateTimeField', 'IPAddressField', 30 30 ) 31 31 … … 636 636 return datetime.datetime.combine(*data_list) 637 637 return None 638 639 ipv4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$') 640 641 class IPAddressField(RegexField): 642 def __init__(self, *args, **kwargs): 643 RegexField.__init__(self, ipv4_re, 644 error_message=ugettext(u'Enter a valid IPv4 address.'), 645 *args, **kwargs) django/trunk/docs/newforms.txt
r6352 r6357 1285 1285 These control the range of values permitted in the field. 1286 1286 1287 ``IPAddressField`` 1288 ~~~~~~~~~~~~~~~~~~ 1289 1290 * Default widget: ``TextInput`` 1291 * Empty value: ``''`` (an empty string) 1292 * Normalizes to: A Unicode object. 1293 * Validates that the given value is a valid IPv4 address, using a regular 1294 expression. 1295 1287 1296 ``MultipleChoiceField`` 1288 1297 ~~~~~~~~~~~~~~~~~~~~~~~ … … 1711 1720 ``ImageField`` ``ImageField`` 1712 1721 ``IntegerField`` ``IntegerField`` 1713 ``IPAddressField`` `` CharField``1722 ``IPAddressField`` ``IPAddressField`` 1714 1723 ``ManyToManyField`` ``ModelMultipleChoiceField`` (see 1715 1724 below) django/trunk/tests/regressiontests/forms/tests.py
r6352 r6357 3835 3835 {'field1': u'some text,JP,2007-04-25 06:24:00'} 3836 3836 3837 3838 # IPAddressField ################################################################## 3839 3840 >>> f = IPAddressField() 3841 >>> f.clean('') 3842 Traceback (most recent call last): 3843 ... 3844 ValidationError: [u'This field is required.'] 3845 >>> f.clean(None) 3846 Traceback (most recent call last): 3847 ... 3848 ValidationError: [u'This field is required.'] 3849 >>> f.clean('127.0.0.1') 3850 u'127.0.0.1' 3851 >>> f.clean('foo') 3852 Traceback (most recent call last): 3853 ... 3854 ValidationError: [u'Enter a valid IPv4 address.'] 3855 >>> f.clean('127.0.0.') 3856 Traceback (most recent call last): 3857 ... 3858 ValidationError: [u'Enter a valid IPv4 address.'] 3859 >>> f.clean('1.2.3.4.5') 3860 Traceback (most recent call last): 3861 ... 3862 ValidationError: [u'Enter a valid IPv4 address.'] 3863 >>> f.clean('256.125.1.5') 3864 Traceback (most recent call last): 3865 ... 3866 ValidationError: [u'Enter a valid IPv4 address.'] 3867 3868 >>> f = IPAddressField(required=False) 3869 >>> f.clean('') 3870 u'' 3871 >>> f.clean(None) 3872 u'' 3873 >>> f.clean('127.0.0.1') 3874 u'127.0.0.1' 3875 >>> f.clean('foo') 3876 Traceback (most recent call last): 3877 ... 3878 ValidationError: [u'Enter a valid IPv4 address.'] 3879 >>> f.clean('127.0.0.') 3880 Traceback (most recent call last): 3881 ... 3882 ValidationError: [u'Enter a valid IPv4 address.'] 3883 >>> f.clean('1.2.3.4.5') 3884 Traceback (most recent call last): 3885 ... 3886 ValidationError: [u'Enter a valid IPv4 address.'] 3887 >>> f.clean('256.125.1.5') 3888 Traceback (most recent call last): 3889 ... 3890 ValidationError: [u'Enter a valid IPv4 address.'] 3891 3837 3892 ################################# 3838 3893 # Tests of underlying functions #
