Coverage for accounts/forms.py: 100.00%
20 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-13 16:37 -0700
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-13 16:37 -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 "username",
13 "email",
14 "age",
15 )
18class CustomUserCreationForm(UserCreationForm):
19 error_message = UserCreationForm.error_messages.update(
20 {"duplicate_username": "This username has already been taken."} # fmt: skip
21 )
23 class Meta:
24 model = User
25 fields = (
26 "username",
27 "email",
28 "age",
29 )
31 def clean_username(self):
32 username = self.cleaned_data["username"] 1b
34 try: 1b
35 User.objects.get(username=username) 1b
36 except User.DoesNotExist: 1b
37 return username 1b
39 raise ValidationError(self.error_messages["duplicate_username"]) 1b