﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
20657	Have UserChangeForm and UserCreationForm utilize get_user_model()	ChocolateCookies	nobody	"While I was trying to re-use the creation form for the admin interface with my custom User model (derived from {{{AbstractUser}}}), I stumbled upon an issue, namely I couldn't re-use it. I might have thought of a solution, but it's probably not very elegant.

In {{{contrib.auth.forms}}} the model meta property for {{{UserChangeForm}}} is User, but in for example AuthenticationForm, the method {{{get_user_model}}} is utilized. Consequently I cannot use the form, because this class imports auth.User instead of my own User model. Is this on purpose, or would it be possible to extend AUTH_USER_MODEL to the creation and change forms? 

I would say it is only possible if a custom User model is derived from {{{AbstractUser}}}, as opposed to {{{AbstractBaseUser}}} ([https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#specifying-a-custom-user-model Like the Django docs suggest]). {{{AbstractUser}}} guarantees the fields that these forms use (username, email), while {{{AbstractBaseUser}}} doesn't. Although that takes away a lot of the flexibility of specifying a custom User model, so maybe there's a middle ground somewhere.

contrib/auth/forms.py:
{{{
class UserChangeForm(forms.ModelForm):
...
    class Meta:
        model = User
...
}}}
"	Cleanup/optimization	closed	Uncategorized	1.5	Normal	duplicate			Unreviewed	0	0	0	0	0	0
