2017-12-30 1 views
0

私は現在、作成したカスタムユーザーモデルの管理ページを実装しようとしています。私は 'email_confirmed'というフィールドを追加しましたが、これをAdminページに表示しようとしています。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