Django

Code

Changeset 671

Show
Ignore:
Timestamp:
09/22/05 21:02:15 (3 years ago)
Author:
adrian
Message:

Fixed #264 -- Added django.core.validators.isValidIPAddress4. Thanks, Hugo and Simon

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/formfields.py

    r637 r671  
    688688 
    689689class IPAddressField(TextField): 
     690    def __init__(self, field_name, length=15, maxlength=15, is_required=False, validator_list=[]): 
     691        validator_list = [self.isValidIPAddress] + validator_list 
     692        TextField.__init__(self, field_name, length=length, maxlength=maxlength, 
     693            is_required=is_required, validator_list=validator_list) 
     694 
     695    def isValidIPAddress(self, field_data, all_data): 
     696        try: 
     697            validators.isValidIPAddress4(field_data, all_data) 
     698        except validators.ValidationError, e: 
     699            raise validators.CriticalValidationError, e.messages 
     700 
    690701    def html2python(data): 
    691702        return data or None 
  • django/trunk/django/core/validators.py

    r663 r671  
    2020email_re = re.compile(r'^[-\w.+]+@\w[\w.-]+$') 
    2121integer_re = re.compile(r'^-?\d+$') 
     22ip4_re = re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$') 
    2223phone_re = re.compile(r'^[A-PR-Y0-9]{3}-[A-PR-Y0-9]{3}-[A-PR-Y0-9]{4}$', re.IGNORECASE) 
    2324url_re = re.compile(r'^http://\S+$') 
     
    8586        except ValidationError: 
    8687            raise ValidationError, "Enter valid e-mail addresses separated by commas." 
     88 
     89def isValidIPAddress4(field_data, all_data): 
     90    if ip4_re.search(field_data): 
     91        valid_parts = [el for el in field_data.split('.') if 0 <= int(el) <= 255] 
     92        if len(valid_parts) == 4: 
     93            return 
     94    raise validators.ValidationError, "Please enter a valid IP address." 
    8795 
    8896def isNotEmpty(field_data, all_data):