Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions src/apps/profiles/forms.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import re
from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import User
Expand All @@ -11,12 +12,13 @@ class SignUpForm(UserCreationForm):

def clean_username(self):
data = self.cleaned_data["username"]
if not data.islower():
raise forms.ValidationError("Usernames should be in lowercase")
if not data.isalnum():
raise forms.ValidationError(
"Usernames should not contain special characters."
)

# Check if username has allowed characters only
# Allow only lowercase letters, numbers, hyphens, and underscores
if not re.match(r"^[a-z0-9_-]+$", data):
raise forms.ValidationError("Username can only contain lowercase letters, numbers, hyphens, and underscores.")

# Check username length
if (len(data) > 15) or (len(data) < 5):
raise forms.ValidationError(
"Username must have at least 5 characters and at most 15 characters"
Expand Down