Django自定义用户表时Admin后台密码密文的解决办法

一般系统默认的User表的字段是没法满足我们的使用的。所以通常我们都会通过继承AbstractUser类来进行扩展
通过扩展之后的类在admin后台会导致密码字段明文显示。
这时候可以这么处理:
1.在admin.py中针对用户的userAdmin继承自系统原生的UserAdmin类

from django.contrib.auth.admin import UserAdmin

2.自定义admin类继承自UserAdmin

class UserProfileAdmin(UserAdmin):

3.重写自定义admin类中的fieldsets变量:

class UserProfileAdmin(UserAdmin):
	# 重建对象详细表排列结构
	fieldsets = (
        (None,{'fields':('username','password','first_name','last_name','email')}),

        (gettext_lazy('Personal info'),{'fields':('nick_name','birthday','gender',
                                                     'mobile', 'address', 'image')}),

        (gettext_lazy('Permissions'), {'fields': ('is_superuser','is_staff','is_active',
                                                  'groups', 'user_permissions')}),

        (gettext_lazy('Important dates'), {'fields': ('last_login', 'date_joined')})
    )

这样就可以了
完整代码:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import gettext_lazy

from .models import UserProfile

# Register your models here.

@admin.register(UserProfile)
class UserProfileAdmin(UserAdmin):
    list_display = ['username', 'email', 'nick_name', 'gender', 'mobile']
    list_filter = ['gender']
    ordering = ['username', 'nick_name']
    search_fields = ['username', 'email', 'mobile']
    # 上面4个变量跟本次内容无关
    fieldsets = (
        (None,{'fields':('username','password','first_name','last_name','email')}),

        (gettext_lazy('Personal info'),{'fields':('nick_name','birthday','gender',
                                                     'mobile', 'address', 'image')}),

        (gettext_lazy('Permissions'), {'fields': ('is_superuser','is_staff','is_active',
                                                  'groups', 'user_permissions')}),

        (gettext_lazy('Important dates'), {'fields': ('last_login', 'date_joined')})
    )
    # 下面两个变量与本次内容无关
    list_per_page = 30
    show_full_result_count = False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@凌晨三点半

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值