Я уверен, что вам нужно перезаписать обычного администратора пользователя.
На самом деле я бы создал специальный forms.ModelForm
для UserProfile с именем, скажем, UserProfileAdminForm
, который также включал поля из модели User
. Затем вы зарегистрируете UserProfile для администратора, а функция save
для UserProfileAdminForm будет захватывать пользовательские поля и либо создавать, либо обновлять запись User
(это оставлено в качестве упражнения для OP).
Подробнее
Когда я говорю добавить дополнительные поля в форму, я имею в виду добавить их вручную:
class UserProfileAdminForm(forms.ModelForm):
username = forms.CharField(...)
email = forms.EmailField(...)
first_name = ...
last_name = ...
def __init__(self, *args, **kwargs):
super(UserProfileAdminForm, self).__init__(*args, **kwargs)
profile = kwargs.get('instance', None)
if profile and profile.user:
self.user = profile.user
self.fields['username'].initial = self.user.username
self.fields['last_name'].initial = ...
...
class Meta:
model = UserProfile