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