validators.py 677 B

123456789101112131415161718192021222324252627
  1. import re
  2. from django.core.exceptions import ValidationError
  3. from django.utils.translation import ugettext_lazy as _
  4. from django.contrib.auth import get_user_model
  5. username_regex = re.compile(r'^[0-9A-Z]+$', re.IGNORECASE)
  6. def validate_username_available(value):
  7. User = get_user_model()
  8. def validate_username_content(value):
  9. if not username_regex.match(value):
  10. raise ValidationError(
  11. _("Username can only contain latin alphabet letters and digits."))
  12. def validate_username_length(value):
  13. pass
  14. def validate_username(value):
  15. validate_username_available(value)
  16. validate_username_content(value)
  17. validate_username_length(value)