Я хотел добавить больше полей в стандартную Django UserCreationForm, поэтому я пошел дальше и вложил в него подклассы в файле forms.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. Почему это не отображается?
У меня также нет никаких шаблонов администратора в моей локальной директории приложения. Может ли это быть проблемой?