~ubuntu-branches/ubuntu/precise/python-django/precise-proposed

« back to all changes in this revision

Viewing changes to django/forms/fields.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez, Julian Edwards
  • Date: 2012-11-20 16:00:41 UTC
  • Revision ID: package-import@ubuntu.com-20121120160041-140ztibl9h0omz79
Tags: 1.3.1-4ubuntu1.5
[ Julian Edwards ]
* debian/patches:
  - genericipaddressfield.diff: Backport GenericIPAddressField
    from 1.4 (LP: #1081391)
  - prefetch_related.diff: Backport prefetch_related from 1.4 (LP: #1081388)
  - bug15496-base64-multipart-fix.diff: Include fix for upstream bug #15496
    which makes 'Content-Transfer-Encoding: base64: work for multipart
    messages. (LP: #1081392)

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
from django.utils import formats
21
21
from django.utils.translation import ugettext_lazy as _
22
22
from django.utils.encoding import smart_unicode, smart_str
 
23
from django.utils.ipv6 import clean_ipv6_address
23
24
from django.utils.functional import lazy
24
25
 
25
26
# Provide this import for backwards compatibility.
37
38
    'RegexField', 'EmailField', 'FileField', 'ImageField', 'URLField',
38
39
    'BooleanField', 'NullBooleanField', 'ChoiceField', 'MultipleChoiceField',
39
40
    'ComboField', 'MultiValueField', 'FloatField', 'DecimalField',
40
 
    'SplitDateTimeField', 'IPAddressField', 'FilePathField', 'SlugField',
41
 
    'TypedChoiceField', 'TypedMultipleChoiceField'
 
41
    'SplitDateTimeField', 'IPAddressField', 'GenericIPAddressField', 'FilePathField',
 
42
    'SlugField', 'TypedChoiceField', 'TypedMultipleChoiceField'
42
43
)
43
44
 
44
45
def en_format(name):
937
938
    default_validators = [validators.validate_ipv4_address]
938
939
 
939
940
 
 
941
class GenericIPAddressField(CharField):
 
942
    default_error_messages = {}
 
943
 
 
944
    def __init__(self, protocol='both', unpack_ipv4=False, *args, **kwargs):
 
945
        self.unpack_ipv4 = unpack_ipv4
 
946
        self.default_validators, invalid_error_message = \
 
947
            validators.ip_address_validators(protocol, unpack_ipv4)
 
948
        self.default_error_messages['invalid'] = invalid_error_message
 
949
        super(GenericIPAddressField, self).__init__(*args, **kwargs)
 
950
 
 
951
    def to_python(self, value):
 
952
        if value in validators.EMPTY_VALUES:
 
953
            return u''
 
954
        if value and ':' in value:
 
955
                return clean_ipv6_address(value,
 
956
                    self.unpack_ipv4, self.error_messages['invalid'])
 
957
        return value
 
958
 
 
959
 
940
960
class SlugField(CharField):
941
961
    default_error_messages = {
942
962
        'invalid': _(u"Enter a valid 'slug' consisting of letters, numbers,"