对象新增、修改唯一字段判断调整

This commit is contained in:
chenzuoqing 2021-12-08 11:24:26 +08:00
parent 2a742c948a
commit b6686adef5
1 changed files with 3 additions and 2 deletions

View File

@ -15,6 +15,7 @@ class ModelViewBase(Resource):
# 是否分页 # 是否分页
paging = True paging = True
# 需要检查重复的字段 # 需要检查重复的字段
# TODO 可能还需要多个字段组合的判断并设默认值dict可能比较合适
uniq_fields = [] uniq_fields = []
# method_decorators 可以用作权限校验,参考 `flask_restful.Resource` # method_decorators 可以用作权限校验,参考 `flask_restful.Resource`
@ -76,10 +77,10 @@ class ModelViewBase(Resource):
val = args.get(field) val = args.get(field)
if val: if val:
exists = self.model.objects(**{field: val}).first() exists = self.model.objects(**{field: val}).first()
# 两种情况需要判断: # 若存在,以下两种情况需要判断:
# 1. 创建时检查内容是否能匹配对象,匹配到返回异常 # 1. 创建时检查内容是否能匹配对象,匹配到返回异常
# 2. 更新时若存在重复,并且不是当前修改的对象,返回异常 # 2. 更新时若存在重复,并且不是当前修改的对象,返回异常
if (not obj and exists) or (obj and obj.id != exists.id): if exists and ((not obj) or (obj and obj.id != exists.id)):
errors.append(f"提交的 {field} 已存在") errors.append(f"提交的 {field} 已存在")
if errors: if errors:
abort_response(400, 1001, msg=f"部分字段需要唯一,请检查重复!", errors=errors) abort_response(400, 1001, msg=f"部分字段需要唯一,请检查重复!", errors=errors)