import re from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ have_symbol = re.compile("[^a-zA-Z0-9._-]+") wrong_ip = re.compile("^0.|^255.") wrong_name = re.compile("[^a-zA-Z0-9._-]+") def validate_hostname(value): sym = have_symbol.match(value) wip = wrong_ip.match(value) if sym: raise ValidationError( _('Hostname must contain only numbers, or the domain name separated by "."') ) elif wip: raise ValidationError(_("Wrong IP address")) def validate_name(value): have_symbol = wrong_name.match("[^a-zA-Z0-9._-]+") if have_symbol: raise ValidationError(_("The hostname must not contain any special characters"))