修改用户信息
This commit is contained in:
parent
080d13b37c
commit
074196422a
|
@ -0,0 +1,43 @@
|
|||
# Generated by Django 3.2.12 on 2022-04-11 13:48
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='dicttype',
|
||||
name='code',
|
||||
field=models.CharField(max_length=30, verbose_name='标识'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='post',
|
||||
name='code',
|
||||
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='岗位标识'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='post',
|
||||
name='name',
|
||||
field=models.CharField(max_length=32, verbose_name='名称'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='role',
|
||||
name='code',
|
||||
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='角色标识'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='role',
|
||||
name='name',
|
||||
field=models.CharField(max_length=32, verbose_name='名称'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='phone',
|
||||
field=models.CharField(blank=True, max_length=11, null=True, verbose_name='手机号'),
|
||||
),
|
||||
]
|
|
@ -61,8 +61,8 @@ class Role(CommonAModel):
|
|||
"""
|
||||
角色
|
||||
"""
|
||||
name = models.CharField('角色', max_length=32, unique=True)
|
||||
code = models.CharField('角色标识', max_length=32, unique=True, null=True, blank=True)
|
||||
name = models.CharField('名称', max_length=32)
|
||||
code = models.CharField('角色标识', max_length=32, null=True, blank=True)
|
||||
perms = models.ManyToManyField(Permission, blank=True, verbose_name='功能权限', related_name='role_perms')
|
||||
description = models.CharField('描述', max_length=50, blank=True, null=True)
|
||||
|
||||
|
@ -79,8 +79,8 @@ class Post(CommonAModel):
|
|||
"""
|
||||
职位/岗位
|
||||
"""
|
||||
name = models.CharField('名称', max_length=32, unique=True)
|
||||
code = models.CharField('岗位标识', max_length=32, unique=True, null=True, blank=True)
|
||||
name = models.CharField('名称', max_length=32)
|
||||
code = models.CharField('岗位标识', max_length=32, null=True, blank=True)
|
||||
description = models.CharField('描述', max_length=50, blank=True, null=True)
|
||||
roles = models.ManyToManyField(Role, verbose_name='关联角色', related_name='post_roles')
|
||||
POST_DATA_ALL = 10
|
||||
|
@ -114,7 +114,7 @@ class User(AbstractUser, CommonBModel):
|
|||
"""
|
||||
name = models.CharField('姓名', max_length=20, null=True, blank=True)
|
||||
phone = models.CharField('手机号', max_length=11,
|
||||
null=True, blank=True, unique=True)
|
||||
null=True, blank=True)
|
||||
avatar = models.CharField(
|
||||
'头像', default='/media/default/avatar.png', max_length=100, null=True, blank=True)
|
||||
superior = models.ForeignKey(
|
||||
|
@ -152,7 +152,7 @@ class DictType(CommonAModel):
|
|||
数据字典类型
|
||||
"""
|
||||
name = models.CharField('名称', max_length=30)
|
||||
code = models.CharField('标识', unique=True, max_length=30)
|
||||
code = models.CharField('标识', max_length=30)
|
||||
parent = models.ForeignKey('self', null=True, blank=True,
|
||||
on_delete=models.SET_NULL, verbose_name='父')
|
||||
|
||||
|
|
|
@ -140,27 +140,13 @@ class RoleCreateUpdateSerializer(CustomModelSerializer):
|
|||
"""
|
||||
角色序列化
|
||||
"""
|
||||
name = serializers.CharField(label="名称", validators=[
|
||||
UniqueValidator(queryset=Role.objects.all(), message='已存在相同名称的角色')])
|
||||
code = serializers.CharField(label="标识", validators=[
|
||||
UniqueValidator(queryset=Role.objects.all(), message='已存在相同标识的角色')])
|
||||
class Meta:
|
||||
model = Role
|
||||
exclude = EXCLUDE_FIELDS
|
||||
|
||||
def create(self, validated_data):
|
||||
if validated_data.get('name', None):
|
||||
if Role.objects.filter(name=validated_data['name']).exists():
|
||||
raise serializers.ValidationError(**ROLE_NAME_EXIST)
|
||||
if validated_data.get('code', None):
|
||||
if Role.objects.filter(code=validated_data['code']).exists():
|
||||
raise serializers.ValidationError(**ROLE_CODE_EXIST)
|
||||
return super().create(validated_data)
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
if validated_data.get('name', None):
|
||||
if Role.objects.filter(name=validated_data['name']).exclude(id=instance.id).exists():
|
||||
raise serializers.ValidationError(**ROLE_NAME_EXIST)
|
||||
if validated_data.get('code', None):
|
||||
if Role.objects.filter(code=validated_data['code']).exclude(id=instance.id).exists():
|
||||
raise serializers.ValidationError(**ROLE_CODE_EXIST)
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
class PermissionSerializer(CustomModelSerializer):
|
||||
"""
|
||||
|
|
|
@ -4,6 +4,8 @@ from rest_framework.response import Response
|
|||
from rest_framework import exceptions
|
||||
from rest_framework.views import set_rollback
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
import traceback
|
||||
from server.settings import myLogger
|
||||
|
||||
def custom_exception_hander(exc, context):
|
||||
"""
|
||||
|
@ -32,5 +34,6 @@ def custom_exception_hander(exc, context):
|
|||
set_rollback()
|
||||
data['request_id'] = request_id
|
||||
return Response(data, status=exc.status_code, headers=headers)
|
||||
|
||||
err_str = traceback.format_exc()
|
||||
myLogger.error('{}-{}'.format(request_id, err_str))
|
||||
return Response(data={'err_code':'server_error', 'err_msg':'服务器错误', 'request_id': request_id}, status=500)
|
|
@ -100,10 +100,6 @@ class MyLoggingMixin(object):
|
|||
|
||||
def handle_exception(self, exc):
|
||||
response = super().handle_exception(exc)
|
||||
if response.status_code >= 500: # 如果是服务器错误额外记录日志到文件
|
||||
err_str = traceback.format_exc()
|
||||
self.log["errors"] = err_str
|
||||
myLogger.error('{}-{}'.format(self.log['id'], err_str))
|
||||
return response
|
||||
|
||||
def finalize_response(self, request, response, *args, **kwargs):
|
||||
|
|
|
@ -289,13 +289,13 @@ LOGGING = {
|
|||
'loggers': {
|
||||
# 类型 为 django 处理所有类型的日志, 默认调用
|
||||
'django': {
|
||||
'handlers': ['default', 'console', 'error'],
|
||||
'handlers': ['default', 'console'],
|
||||
'level': 'INFO',
|
||||
'propagate': False
|
||||
},
|
||||
# log 调用时需要当作参数传入
|
||||
'log': {
|
||||
'handlers': ['error', 'info'],
|
||||
'handlers': ['error', 'info', 'console'],
|
||||
'level': 'INFO',
|
||||
'propagate': True
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue