【发布时间】:2011-10-04 16:59:56
【问题描述】:
我想在标准的 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 具有的用户名和密码字段来添加新用户,我会收到一个错误,当我在我的 ModelAdmin 中删除 add_form 行时,该错误会立即消失。为什么不显示?
我的本地应用程序目录中也没有任何管理模板。会不会是这个问题?
【问题讨论】:
标签: django django-admin django-authentication