您现在的位置是: 网站首页> 学习笔记> Django Django

django admin使用自定义用户类以后,新增用户保存的密码为明文

2024-08-04 [django] 190人已围观

如题,使用了自定义用户表,使用admin.ModelAdmin注册到后台,在新 增用户时,系统保存到数据库的密码为明文,不仅不安全,还会造成认证 失败,因为认证时系统会拿明文去解密再认证。 网上大多是说在admin中添加如下配置:

fieldsets = (None, {'fields': ('username','password', 'phone', 'is_superuser', 'is_active')}),
add_fieldsets = (None, {'classes': ('wide',), 'fields': (
    'username', 'password1', 'password2', 'phone', 'is_superuser', 'is_staff', 'is_active'), }),

或者很多其它类似的配置。实事是添加这些配置也无济于事,反而会让密码 框无法显示出来。

正确的处理方法

不使用admin.ModelAdmin而使用UserAdmin。

例:

from django.contrib.auth.admin import UserAdmin
@admin.register(SysUser)
class SysUserModelAdmin(UserAdmin):
    list_display = ['username', 'phone', 'is_superuser', 'is_staff', 'is_active', ]
    search_fields = ('username', 'phone')
    list_filter = ('is_superuser', 'is_active')
    fieldsets = (None, {'fields': ('username','password', 'phone', 'is_superuser', 'is_active')}),
    add_fieldsets = (None, {'classes': ('wide',), 'fields': (
    'username', 'password1', 'password2', 'phone', 'is_superuser', 'is_staff', 'is_active'), }),

文章评论

暂无评论

添加评论





本栏推荐

站点信息

  • 建站时间:2021-01-01
  • 网站程序:Django 3.1.2
  • 文章统计:53篇
  • 文章评论:31条
  • 统计数据