2017-12-30 12 views
0

현재 사용자 정의 사용자 모델에 대한 관리자 페이지를 구현하려고합니다. 'email_confirmed'라는 필드를 추가했는데이 정보를 관리자 페이지에 표시하려고합니다. 당신은 내가이 작업을 얻을 확인하는 방법이라는 이메일을 작성 시도 볼 수 있듯이, 그러나 그것은 작동하지 않았다Django 사용자 정의 사용자 관리 페이지

class User(AbstractUser): 
    """User model.""" 
    abstract = True 
    username = None 
    email = EmailField(_('email address'), unique=True) 
    email_confirmed = BooleanField(default = False) 

    USERNAME_FIELD = 'email' 
    REQUIRED_FIELDS = ['first_name', 'second_name'] 

    objects = UserManager() 

    def get_full_name(self): 
     fname = self.first_name 
     lname = self.last_name 
     return '{} {}'.format(fname, lname) 

    def email_confirmed(self): 
     return self.email_confirmed 

:

모델이다.

은 내 admin.py에있는 UserAdmin입니다 :

+0

정확히 표시 할 일을 귀하의 관리자 페이지에? –

+0

'email_confirmed'를 추가하여 모든 기본 정보를 보여주고 싶습니다. – wtreston

+0

클래스의'__str __()'함수를 재정의 하시겠습니까? 사물을 인쇄 할 때 또는 관리 페이지가 렌더링 할 때 호출되는 것입니다. –

답변

2

이 방법

를 작성하지 마십시오 도움을

@admin.register(get_user_model()) 
class UserAdmin(UserAdmin): 
    class Meta: 

     model = get_user_model() 

    fieldsets = (
     (None, {'fields': ('email', 'password')}), 
     (_('Personal info'), {'fields': ('first_name', 'last_name', 'email_confirmed')}), 
     (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 
             'groups', 'user_permissions')}), 
     (_('Important dates'), {'fields': ('last_login', 'date_joined')}), 
    ) 
    add_fieldsets = (
     (None, { 
      'classes': ('wide',), 
      'fields': ('email', 'password1', 'password2', 'email_confirmed()'), 
     }), 
    ) 
    list_display = ('email', 'first_name', 'last_name', 'is_staff', 'email_confirmed') 
    search_fields = ('email', 'first_name', 'last_name', 'email_confirmed') 
    ordering = ('email',) 

감사

def email_confirmed(self): 
    return self.email_confirmed 
+0

게시했습니다. 고맙습니다! – wtreston