fix(user): fixed user export data form
parent
f768cc6dea
commit
5a23609ddd
|
@ -19,7 +19,8 @@ class UserSerializer(CustomModelSerializer):
|
||||||
"""
|
"""
|
||||||
用户管理-序列化器
|
用户管理-序列化器
|
||||||
"""
|
"""
|
||||||
dept_name = serializers.CharField(source='dept.name', read_only=True)
|
|
||||||
|
dept_name = serializers.CharField(source="dept.name", read_only=True)
|
||||||
role_info = DynamicSerializerMethodField()
|
role_info = DynamicSerializerMethodField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -36,11 +37,7 @@ class UserSerializer(CustomModelSerializer):
|
||||||
# You can do what ever you want in here
|
# You can do what ever you want in here
|
||||||
|
|
||||||
# `parsed_query` param is passed to BookSerializer to allow further querying
|
# `parsed_query` param is passed to BookSerializer to allow further querying
|
||||||
serializer = RoleSerializer(
|
serializer = RoleSerializer(roles, many=True, parsed_query=parsed_query)
|
||||||
roles,
|
|
||||||
many=True,
|
|
||||||
parsed_query=parsed_query
|
|
||||||
)
|
|
||||||
return serializer.data
|
return serializer.data
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,14 +48,29 @@ class UsersInitSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Users
|
model = Users
|
||||||
fields = ["username", "email", 'mobile', 'avatar', "name", 'gender', 'user_type', "dept", 'user_type',
|
fields = [
|
||||||
'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'creator', 'dept_belong_id',
|
"username",
|
||||||
'password', 'last_login', 'is_superuser']
|
"email",
|
||||||
read_only_fields = ['id']
|
"mobile",
|
||||||
extra_kwargs = {
|
"avatar",
|
||||||
'creator': {'write_only': True},
|
"name",
|
||||||
'dept_belong_id': {'write_only': True}
|
"gender",
|
||||||
}
|
"user_type",
|
||||||
|
"dept",
|
||||||
|
"user_type",
|
||||||
|
"first_name",
|
||||||
|
"last_name",
|
||||||
|
"email",
|
||||||
|
"is_staff",
|
||||||
|
"is_active",
|
||||||
|
"creator",
|
||||||
|
"dept_belong_id",
|
||||||
|
"password",
|
||||||
|
"last_login",
|
||||||
|
"is_superuser",
|
||||||
|
]
|
||||||
|
read_only_fields = ["id"]
|
||||||
|
extra_kwargs = {"creator": {"write_only": True}, "dept_belong_id": {"write_only": True}}
|
||||||
|
|
||||||
|
|
||||||
class UserCreateSerializer(CustomModelSerializer):
|
class UserCreateSerializer(CustomModelSerializer):
|
||||||
|
@ -68,9 +80,7 @@ class UserCreateSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
username = serializers.CharField(
|
username = serializers.CharField(
|
||||||
max_length=50,
|
max_length=50,
|
||||||
validators=[
|
validators=[CustomUniqueValidator(queryset=Users.objects.all(), message="账号必须唯一")],
|
||||||
CustomUniqueValidator(queryset=Users.objects.all(), message="账号必须唯一")
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
password = serializers.CharField(
|
password = serializers.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
|
@ -108,17 +118,13 @@ class UserUpdateSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
username = serializers.CharField(
|
username = serializers.CharField(
|
||||||
max_length=50,
|
max_length=50,
|
||||||
validators=[
|
validators=[CustomUniqueValidator(queryset=Users.objects.all(), message="账号必须唯一")],
|
||||||
CustomUniqueValidator(queryset=Users.objects.all(), message="账号必须唯一")
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
# password = serializers.CharField(required=False, allow_blank=True)
|
# password = serializers.CharField(required=False, allow_blank=True)
|
||||||
mobile = serializers.CharField(
|
mobile = serializers.CharField(
|
||||||
max_length=50,
|
max_length=50,
|
||||||
validators=[
|
validators=[CustomUniqueValidator(queryset=Users.objects.all(), message="手机号必须唯一")],
|
||||||
CustomUniqueValidator(queryset=Users.objects.all(), message="手机号必须唯一")
|
allow_blank=True,
|
||||||
],
|
|
||||||
allow_blank=True
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def save(self, **kwargs):
|
def save(self, **kwargs):
|
||||||
|
@ -142,13 +148,15 @@ class ExportUserProfileSerializer(CustomModelSerializer):
|
||||||
用户导出 序列化器
|
用户导出 序列化器
|
||||||
"""
|
"""
|
||||||
|
|
||||||
last_login = serializers.DateTimeField(
|
last_login = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
||||||
format="%Y-%m-%d %H:%M:%S", required=False, read_only=True
|
is_active = serializers.SerializerMethodField(read_only=True)
|
||||||
)
|
dept__deptName = serializers.CharField(source="dept.name", default="")
|
||||||
dept__deptName = serializers.CharField(source="dept.deptName", default="")
|
|
||||||
dept__owner = serializers.CharField(source="dept.owner", default="")
|
dept__owner = serializers.CharField(source="dept.owner", default="")
|
||||||
gender = serializers.CharField(source="get_gender_display", read_only=True)
|
gender = serializers.CharField(source="get_gender_display", read_only=True)
|
||||||
|
|
||||||
|
def get_is_active(self, instance):
|
||||||
|
return "启用" if instance.is_active else "停用"
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Users
|
model = Users
|
||||||
fields = (
|
fields = (
|
||||||
|
@ -167,9 +175,7 @@ class ExportUserProfileSerializer(CustomModelSerializer):
|
||||||
class UserProfileImportSerializer(CustomModelSerializer):
|
class UserProfileImportSerializer(CustomModelSerializer):
|
||||||
def save(self, **kwargs):
|
def save(self, **kwargs):
|
||||||
data = super().save(**kwargs)
|
data = super().save(**kwargs)
|
||||||
password = hashlib.new(
|
password = hashlib.new("md5", str(self.initial_data.get("password", "")).encode(encoding="UTF-8")).hexdigest()
|
||||||
"md5", str(self.initial_data.get("password", "")).encode(encoding="UTF-8")
|
|
||||||
).hexdigest()
|
|
||||||
data.set_password(password)
|
data.set_password(password)
|
||||||
data.save()
|
data.save()
|
||||||
return data
|
return data
|
||||||
|
@ -243,29 +249,17 @@ class UserViewSet(CustomModelViewSet):
|
||||||
"title": "用户性别",
|
"title": "用户性别",
|
||||||
"choices": {
|
"choices": {
|
||||||
"data": [{"未知": 2}, {"男": 1}, {"女": 0}],
|
"data": [{"未知": 2}, {"男": 1}, {"女": 0}],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
"is_active": {
|
"is_active": {
|
||||||
"title": "帐号状态",
|
"title": "帐号状态",
|
||||||
"choices": {
|
"choices": {
|
||||||
"data": [{"启用": True}, {"禁用": False}],
|
"data": [{"启用": True}, {"禁用": False}],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
"password": "登录密码",
|
"password": "登录密码",
|
||||||
"dept": {
|
"dept": {"title": "部门", "choices": {"queryset": Dept.objects.filter(status=True), "values_list": "name"}},
|
||||||
"title": "部门",
|
"role": {"title": "角色", "choices": {"queryset": Role.objects.filter(status=True), "values_list": "name"}},
|
||||||
"choices": {
|
|
||||||
"queryset": Dept.objects.filter(status=True),
|
|
||||||
"values_list": "name"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"role": {
|
|
||||||
"title": "角色",
|
|
||||||
"choices": {
|
|
||||||
"queryset": Role.objects.filter(status=True),
|
|
||||||
"values_list": "name"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@action(methods=["GET"], detail=False, permission_classes=[IsAuthenticated])
|
@action(methods=["GET"], detail=False, permission_classes=[IsAuthenticated])
|
||||||
|
|
|
@ -133,8 +133,11 @@ export default {
|
||||||
return crudOptions(this)
|
return crudOptions(this)
|
||||||
},
|
},
|
||||||
pageRequest (query) {
|
pageRequest (query) {
|
||||||
const columnKeys = util.filterParams(this,['dept_name','role_info{name}'])
|
const columnKeys = util.filterParams(this, [
|
||||||
const params = { query: columnKeys,...query }
|
'dept_name',
|
||||||
|
'role_info{name}'
|
||||||
|
])
|
||||||
|
const params = { query: columnKeys, ...query }
|
||||||
return api.GetList(params)
|
return api.GetList(params)
|
||||||
},
|
},
|
||||||
addRequest (row) {
|
addRequest (row) {
|
||||||
|
|
Loading…
Reference in New Issue