我想在django中使用导入导出批量用户导入
我得到一个文件包含用户列表,然后根据文件行创建用户
我尝试像这样实现before_import
notifyDataSetChanged()
但它返回元组'对象不支持项目分配
答案 0 :(得分:1)
对于密码,您可以编写自己的密码widget,将普通密码转换为哈希密码。像这样(未经测试):
class PassWidget(Widget):
def clean(self, value):
if self.is_empty(value):
return None
return make_password(value)
def render(self, value):
return force_text(value)
答案 1 :(得分:0)
我希望您在导入之前尝试对密码进行哈希处理。 它可以帮助您:
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