Я хотел добавить больше полей в стандартную форму Django UserCreationForm, поэтому я пошел дальше и создал подклассы внутри файла form.py моего приложения и в итоге получил следующее:
class CustomUserCreationForm(UserCreationForm):
email = forms.EmailField(label = "Email")
first_name = forms.CharField(label = "First name")
last_name = forms.CharField(label = "Last name")
class Meta:
model = User
fields = ("first_name", "last_name", "username",)
def save(self, commit=True):
user = super(CustomUserCreationForm, self).save(commit=False)
user.first_name = first_name
user.last_name = last_name
user.email = self.cleaned_data["email"]
if commit:
user.save()
return user
Затем я создал собственный ModelAdmin для моих пользователей, который выглядит следующим образом:
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
inlines = [ProfileInline,]
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
admin.site.register(Class, ClassAdmin)
Независимо от того, что я делаю, однако, новый CustomUserCreationForm делает не отображается, когда я захожу на страницу администратора и пытаюсь добавить нового пользователя. Где я облажался?
РЕДАКТИРОВАТЬ: Похоже, что форма не отображается, но используется. Если я попытаюсь добавить нового пользователя, использующего только поля имени пользователя и пароля, которые есть в типичной UserCreationForm, я получаю сообщение об ошибке, которое быстро исчезает, когда я удаляю Добавьте строку add_form в моем ModelAdmin. Почему не отображается?
У меня также нет шаблонов администратора в моем локальном каталоге приложений. Может быть, это проблема?