tag:blogger.com,1999:blog-4770774760495172381.post8691290144474363215..comments2023-10-12T22:41:44.001+11:00Comments on Wad of Stuff: Django gets support for IPv6 fieldsMatthew Flanaganhttp://www.blogger.com/profile/15093905875465763876noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-4770774760495172381.post-8464461730986636492011-06-16T09:55:39.482+10:002011-06-16T09:55:39.482+10:00@Daniel, socket.AF_INET6 only appeared in Python 2...@Daniel, socket.AF_INET6 only appeared in Python 2.5 and the validation code they borrowed from ipaddr-py supports 2.4 and later.<br /><br />That being said, the upcoming release of Django 1.4 will only support Python 2.5 and later so maybe your validation method might work. Have you tried running the tests with your code in place of Django's is_valid_ipv6_address() or ipaddr-py's _BaseV6Matthew Flanaganhttps://www.blogger.com/profile/15093905875465763876noreply@blogger.comtag:blogger.com,1999:blog-4770774760495172381.post-32695652383864704402011-06-16T07:19:15.429+10:002011-06-16T07:19:15.429+10:00Wow... Django's IPv6 validation code is pretty...Wow... Django's IPv6 validation code is pretty long... I tend to use this instead:<br /><br />import socket<br />from django.core.exceptions import ValidationError<br /><br />def validate_ip_address(value):<br /> af = socket.AF_INET6 if ':' in value else socket.AF_INET<br /> try:<br /> tmp = socket.inet_pton(af, value)<br /> except socket.error:<br /> raise ValidationError(&#Danielhttps://www.blogger.com/profile/16336375070251263147noreply@blogger.com