Изменение UserCreationForm Джанго
Я хотел добавить больше полей в стандартную форму 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 не отображается, когда я иду на страницу администратора и пытаюсь добавить нового пользователя. Где я облажался?
EDIT: It кажется, что форма не отображается, но используется. Если я попытаюсь добавить нового пользователя, используя только поля имени пользователя и пароля, которые имеет типичная UserCreationForm, я получаю ошибку, которая быстро исчезает, когда я удаляю строку add_form в моем ModelAdmin. Почему он не отображается?
у меня также нет шаблонов администратора в моем локальном каталоге приложений. Может ли это быть проблемой?
1 ответов
необходимо добавить поля, добавленные в свойство add_fieldsets пользовательского класса admin.
#example:
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'email', 'password1', 'password2')}
),
)
у пользователя был аналогичный вопрос на днях:как я могу иметь регистрацию пользователя Django один шаг (вместо двух шагов)процесс с электронной почтой обязательным?, который включал в себя создание пользовательских форм администрирования, а также.