Coverage for accounts/forms.py: 100.00%
20 statements
« prev ^ index » next coverage.py v7.9.0, created at 2025-06-12 14:44 -0700
« prev ^ index » next coverage.py v7.9.0, created at 2025-06-12 14:44 -0700
1from django.contrib.auth import get_user_model
2from django.contrib.auth.forms import UserChangeForm, UserCreationForm
3from django.core.exceptions import ValidationError
5User = get_user_model()
8class CustomUserChangeForm(UserChangeForm):
9 class Meta:
10 model = User
11 fields = (
12 "email",
13 "username",
14 )
17class CustomUserCreationForm(UserCreationForm):
18 error_message = UserCreationForm.error_messages.update(
19 {"duplicate_username": "This username has already been taken."} # fmt: skip
20 )
22 class Meta:
23 model = User
24 fields = (
25 "email",
26 "username",
27 )
29 def clean_username(self):
30 username = self.cleaned_data["username"] 1b
32 try: 1b
33 User.objects.get(username=username) 1b
34 except User.DoesNotExist: 1b
35 return username 1b
37 raise ValidationError(self.error_messages["duplicate_username"]) 1b