def __call__(self, value):
try:
super(URLValidator, self).__call__(value)
except ValidationError as e:
# Trivial case failed. Try for possible IDN domain
if value:
value = text_type(value)
scheme, netloc, path, query, fragment = urlsplit(value)
try:
# IDN -> ACE
netloc = netloc.encode('idna').decode('ascii')
except UnicodeError: # invalid domain part
raise ValidationError(self.message.format(value),
code=self.code)
url = urlunsplit((scheme, netloc, path, query, fragment))
return super(URLValidator, self).__call__(url)
else:
raise ValidationError(self.message.format(value),
code=self.code)
return value
评论列表
文章目录