forms.py 1.1 KB

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