簡體   English   中英

在Django中擴展用戶模型可公開保存密碼

[英]Extending user models in Django saves password publicly

新創建的用戶的密碼在管理控制台模型上公開顯示。 為什么會這樣,我如何正確執行呢?

此外,我實際上無法使用Accounts_app中創建的任何新用戶登錄。 我只能使用在項目早期創建的python manage.py createsuperuser登錄。

在此處輸入圖片說明

這是models.py

from django.contrib.auth.models import AbstractUser


class ProjectUser(AbstractUser):

    def __str__(self):
        return self.username

這是settings.py

PASSWORD_HASHERS = [
    'django.contrib.auth.hashers.Argon2PasswordHasher',
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
    'django.contrib.auth.hashers.BCryptPasswordHasher',
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
]


AUTH_USER_MODEL = 'accounts_app.ProjectUser'

這是我的管理員視圖

在此處輸入圖片說明

要創建用戶,請在應用程序管理員視圖中單擊“添加用戶”。

在此處輸入圖片說明

這是apps.py文件

from django.apps import AppConfig


class AccountsConfig(AppConfig):
    name = 'accounts_app'

這是admin.py文件

from django.contrib import admin
from accounts_app.models import ProjectUser

# Register your models here.
admin.site.register(ProjectUser)

盡管將ProjectUser設置為AUTH_USER_MODEL,但您已在admin中將其注冊為標准模型,而不是用戶模型。 您需要使用docs中所示的用戶admin,因為這可以對哈希進行哈希處理:

from django.contrib.auth.admin import UserAdmin

admin.site.register(ProjectUser, UserAdmin)

您需要先刪除並重新創建通過管理員生成的用戶,然后再進行更改。

首先,您想做什么,擴展或定制用戶模型?

希望對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM