Updated users/admin.py with fix for issue #146 to allow user creation through the Django admin

This commit is contained in:
Hannes Hapke 2014-11-11 14:33:34 -08:00
parent 57eeef37d0
commit 1c0f4a6c05

View File

@ -1,13 +1,27 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.contrib import admin from django.contrib import admin
from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.admin import UserAdmin as AuthUserAdmin from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
from .models import User from .models import User
class MyUserCreationForm(UserCreationForm):
def clean_username(self):
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'])
class Meta(UserCreationForm.Meta):
model = User
class UserAdmin(AuthUserAdmin): class UserAdmin(AuthUserAdmin):
create_form_class = UserCreationForm add_form = MyUserCreationForm
update_form_class = UserChangeForm update_form_class = UserChangeForm