我试图设置一个djangoproject来处理许多用户(20 k)。
我从excel文件导入用户,其中用户密码是纯文本的(我知道,这很糟糕!)
我使用https://github.com/bmihelac/django-import-export进行导入,但导入功能不会转换密码。
我该怎么做才能正确存储密码?
答案 0 :(得分:2)
在导入之前,您应该通过覆盖before_import_row方法来对密码进行哈希处理
像这样:
from import_export import resources, fields
from import_export.admin import ImportExportModelAdmin
from django.contrib.auth.hashers import make_password
class UserResource(resources.ModelResource):
groups = fields.Field(
column_name='group_name',
attribute='groups',
widget=ManyToManyWidget(Group, ',','name')
)
def before_import_row(self,row, **kwargs):
value = row['password']
row['password'] = make_password(value)
class Meta:
model = User
答案 1 :(得分:1)
您可以直接从django导入此功能:
from django.contrib.auth.hashers import make_password
并在保存之前将原始密码传递给它。