django里在admin后台管理里面默认的新增用户,密码会以明文的形式保存,导致登录时提示错误的解决版本

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from user.models import UserProfile
from django.utils.translation import gettext_lazy


# Register your models here.
# class UserProfileAdmin(admin.ModelAdmin):
#     pass


# admin.site.register(UserProfile, UserProfileAdmin)
@admin.register(UserProfile)
class UsersAdmin(UserAdmin):
    # 显示元组,携带的字段均为扩展字段,使用了fieldsets后也可不再修改该元组
    list_display = ("username", "nick_name","email",  "gender", "mobile")
    list_filter = ('gender',)
    ordering = ("username", "nick_name")
    # # 搜索数据时使用的元组, 携带的字段均为扩展字段
    search_fields = ("username", "email", "mobile")
    #
    # fieldsets 主要用于字段分组,仅应用于显示
    fieldsets = (
        # 此处保留UserAdmin中的password字段,以此保证在新增用户时避免出现明文存储的问题
        (gettext_lazy('基本信息'), {'fields': (
        'username', 'nick_name', 'password', 'first_name', 'last_name', 'email', "mobile", "birthday", "gender",
        "address","image")}),

        (gettext_lazy('权限信息'), {'fields': ('is_superuser', 'is_staff', 'is_active')}),

        (gettext_lazy('日期信息'), {'fields': ('last_login', 'date_joined')}),
    )

按如上重写user下的admin.py里的内容,

 

未修改前的密码:

 

posted on 2022-08-19 18:01  Shine-Zhong  阅读(272)  评论(0编辑  收藏  举报

导航