from django.contrib.auth.models import User from django.forms import ModelForm, ValidationError class AccountSettingsForm(ModelForm): error_css_class = "errorfield" class Meta: model = User fields = ["username"] def clean_public_name(self): public_name = self.cleaned_data["username"] public_name = public_name.strip() if ( User.objects.filter(username=public_name) .exclude(pk=self.instance.pk) .exists() ): raise ValidationError("Un autre compte utilise déjà ce nom ou ce pseudo.") return public_name