Django Admin 后台Admin繼承UserAdmin增加用戶密碼不顯示明文和用戶登錄不了的解決方法


Django后台Admin繼承UserAdmin增加用戶不顯示明文方法

1.在 models.py 中用戶表

# 導包規范-1.Python標准模塊
from django.db import models
from django.contrib.auth.models import AbstractUser  # AbstractUser繼承原用django中的用戶原有字段再擴展
# 導包規范-2.第三方模塊

# 導包規范-3.自定義模塊


# 002-用戶信息表
class UserProfile(AbstractUser, BaseModel):
    手機號碼 = models.CharField(max_length=11, blank=True, null=True)  # unique=True,先去出xadmin中注冊不出錯
    部門名稱 = models.ForeignKey('Department', blank=True, null=True, on_delete=models.DO_NOTHING)

    class Meta:
        verbose_name = '用戶信息'
        verbose_name_plural = verbose_name

    def __str__(self):  # 必需有值的字段,當前對象的描寫
        return self.username  # 返回此對象的用戶名username 

2.在 admin.py 中注冊表  

# 導包規范-1.Python django標准模塊
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import gettext_lazy
# 導包規范-2.第三方模塊

# 導包規范-3.自定義模塊
from APPS.A001jcxx.models import UserProfile # 自已 models 的位置


@admin.register(UserProfile)
class UserProfileAdmin(UserAdmin):
    list_display = ['username', 'password', 'is_staff']  # 展示頁面顯示字段設置
    list_per_page = 10  # 展示頁面展示的條
    # 增加用戶時密碼為密文
    add_fieldsets = (
        (None, {u'fields': ('username', 'password1', 'password2')}),
        # 增加頁面顯示字段設置
        (gettext_lazy('User Information'), {'fields': ('is_superuser', '手機號碼', '部門名稱', 'is_staff')}),)

3.同步數據庫,創建超級用戶,用超級用戶登錄

4.進入"用戶信息" 增加新的用戶

5.一定要把 "職員狀態" 勾選上,如果這里沒有展示,就要在新建成功后進入修改頁面修改成狀態,不修改的的話就登錄不了后台管理(我都找了好久的方法才明白)

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM