对象新增、修改唯一字段判断调整
This commit is contained in:
parent
2a742c948a
commit
b6686adef5
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue