forms.py 1.0 KB

123456789101112131415161718192021222324252627282930
  1. from django import forms
  2. from django.core.exceptions import ValidationError
  3. from django.utils.translation import ugettext_lazy as _
  4. from misago.forms import Form
  5. class UsernameChangeForm(Form):
  6. username = forms.CharField(max_length=255)
  7. error_source = 'username'
  8. layout = [
  9. [
  10. None,
  11. [
  12. ('username', {'label': _("Change Username to"), 'help_text': _("Enter new desired username.")}),
  13. ],
  14. ],
  15. ]
  16. def clean_username(self):
  17. org_username = self.request.user.username
  18. self.request.user.set_username(self.cleaned_data['username'])
  19. if org_username == self.request.user.username:
  20. raise ValidationError(_("Your new username is same as current one."))
  21. try:
  22. self.request.user.full_clean()
  23. except ValidationError as e:
  24. self.request.user.is_username_valid(e)
  25. return self.cleaned_data['username']