1

i want to check if a user wants to use a forbidden username at sign up, sadly this currently only works with lowercase. How can i make this work for upper,lower,mixed scenarios?

def forbidden_usernames(value):
    words = ["manager", "admin", "member", "staff", "support", "root"]
    if any(word in value for word in words):
        raise ValidationError(
            "Please don't use usernames like: admin, root, support etc.",
            code="invalid_username",
        )

2 Answers2

2

Just write

if any(word in value.lower() for word in words):
Jan
  • 42,290
  • 8
  • 54
  • 79
2

If value is a string, then just call its lower method.

def forbidden_usernames(value):
    words = ["manager", "admin", "member", "staff", "support", "root"]
    if any(word in value.lower() for word in words):
        raise ValidationError(
            "Please don't use usernames like: admin, root, support etc.",
            code="invalid_username",
        )
Chris Doyle
  • 10,703
  • 2
  • 23
  • 42