我只是尝试使用Django。当我尝试使用createsuperuser创建超级用户并且尝试使用诸如abcd1234之类的常用密码(因为不允许使用abc或123)时,它无法接受它,因为显然我的密码太普通了,我知道createsuperuser使用某种密码列表以使其与他们的密码匹配。我想问一下是否可以更改密码列表。
我已经尝试打开manage.py来找到createsuperuser方法,但我没有找到它,因为它仅包含run(sys.argv)
答案 0 :(得分:0)
您应该能够。
寻找路径之后的文件夹:
\Python3\Lib\site-packages\django\contrib\auth
或系统上的等效项。
在其中,您应该看到一个名为common-passwords.txt.gz
的文件。
里面有一个名为common-passwords.new.txt
您应该只能够更改列表上的密码。每行一个密码。密码应完全小写,因为Django会自动将密码翻译为小写,以便与通用密码列表进行比较。
答案 1 :(得分:0)
欢迎来到Stackoverflow!
您也可以遵循其他答案。但是,每当您更改virtualenv
时,都必须放置密码文件。这是将其保留在项目中的方法。
manage.py
存在的项目文件夹中从您的项目文件夹中打开settings.py
并添加以下内容
FILE_NAME = "custom_common_password_list.txt"
在项目文件夹下创建文件custom_common_password.py
# projectname/custom_common_password.py
import os
from django.contrib.auth.password_validation import CommonPasswordValidator
from django.conf import settings
class CustomCommonPasswordValidator(CommonPasswordValidator):
def __init__(self):
super().__init__(password_list_path=os.path.join(settings.BASE_DIR, settings.FILE_NAME))
我们基本上是用文件路径调用CommonPasswordValidator。
修改AUTH_PASSWORD_VALIDATORS
并添加以下内容:
AUTH_PASSWORD_VALIDATORS = [
# ...
{
'NAME': 'projectname.custom_common_password.CustomCommonPasswordValidator',
},
#...
]
我们评论现有的CommonPasswordValidator
并放置我们的自定义验证器。确保将projectname
替换为您的项目名称。