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