2011-07-18 37 views

回答

6

你必须创建自己的用户表单并添加您所需的字段:

class UserForm(forms.ModelForm): 
    class Meta: 
     model = User 

    def __init__(self, *args, **kwargs): 
     super(UserForm, self).__init__(*args, **kwargs) 
     self.fields['email'].required = True 
     self.fields['first_name'].required = True 
     self.fields['last_name'].required = True 

然后覆盖的形式,您的ModelAdmin:

class UserAdmin(admin.ModelAdmin): 
    form = UserForm 

然后注册自己之前注销正常admin用户:

admin.site.unregister(User) 
admin.site.register(User, UserAdmin) 
6

这扩展Geoffroy的答案:

from django.contrib.auth.forms import UserCreationForm 
class UserForm(UserCreationForm): 
    class Meta: 
     model = User 

    def __init__(self, *args, **kwargs): 
     super(UserForm, self).__init__(*args, **kwargs) 
     self.fields['email'].required = True 
     self.fields['first_name'].required = True 
     self.fields['last_name'].required = True 

的ModelAdmin:

from django.contrib.auth.admin import UserAdmin 
class CustomUserAdmin(UserAdmin): 
    add_form = UserForm 
    add_fieldsets = (
     (None, {'fields':('username','password1','password2','first_name','last_name','email'),}),) 

然后注销如上:

admin.site.unregister(User) 
admin.site.register(User, CustomUserAdmin) 
相关问题