我创建了一个包含country
的自定义用户模型:
models.py
class CustomUser(AbstractUser):
country = models.CharField(max_length=50, default="None")
然后添加了表单字段为country
的{{1}}形式的自定义表单,其中显示了所有国家/地区:
forms.py
ChoiceField
然后我将其注册在管理员中:
admin.py
class CustomUserCreationForm(UserCreationForm):
country = forms.ChoiceField(choices=sorted(COUNTRIES.items()), label="Country")
class Meta(UserCreationForm):
model = CustomUser
fields = '__all__'
class CustomUserChangeForm(UserChangeForm):
country = forms.ChoiceField(choices=sorted(COUNTRIES.items()), label="Country")
class Meta(UserChangeForm):
model = CustomUser
fields = '__all__'
它已注册,并且一切正常,我可以使用Django Shell和以编程方式保存该模型,但无法在管理控制台中显示它。当我尝试通过管理员创建新用户时,我只看到三个字段-用户名,密码和密码确认。
我是否需要扩展管理模板才能显示此新字段?
答案 0 :(得分:0)
要执行此操作,您将必须在add_fieldsets
中CustomUserAdmin
下的admin.py
:
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = CustomUser
list_display = ['email', 'username', 'is_staff',]
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'password1', 'password2', 'country'),
}),
)
admin.site.register(CustomUser, CustomUserAdmin)