mirror of
https://github.com/pinry/pinry.git
synced 2025-11-13 08:35:41 +01:00
Removed pins django app, and moved code to the core. Moved user related code out of core to the users app.
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from django import forms
|
|
from django.utils.translation import ugettext, ugettext_lazy as _
|
|
from django.contrib.auth.models import User
|
|
|
|
|
|
class UserCreationForm(forms.ModelForm):
|
|
"""
|
|
A form that creates a user, with no privileges, from the given username,
|
|
email, and password.
|
|
"""
|
|
error_messages = {
|
|
'duplicate_username': _("A user with that username already exists."),
|
|
}
|
|
username = forms.RegexField(label=_("Username"), max_length=30,
|
|
regex=r'^[\w-]+$')
|
|
password = forms.CharField(label=_("Password"),
|
|
widget=forms.PasswordInput)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ("username", "email")
|
|
|
|
def clean_username(self):
|
|
# Since User.username is unique, this check is redundant,
|
|
# but it sets a nicer error message than the ORM. See #13147.
|
|
username = self.cleaned_data["username"]
|
|
try:
|
|
User._default_manager.get(username=username)
|
|
except User.DoesNotExist:
|
|
return username
|
|
raise forms.ValidationError(self.error_messages['duplicate_username'])
|
|
|
|
def save(self, commit=True):
|
|
user = super(UserCreationForm, self).save(commit=False)
|
|
user.set_password(self.cleaned_data["password"])
|
|
if commit:
|
|
user.save()
|
|
return user
|