24 lines
883 B
Python
24 lines
883 B
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# @Time : 2025/3/15 21:24
|
|
# @Author : AngesZhu
|
|
# @File : unique_rules.py
|
|
# @Desc : 校验字段在列表中是否为唯一
|
|
from typing import Any, List
|
|
from utils.validation_error_utils import handle_validation_errors, UniqueFieldError
|
|
|
|
|
|
def validate_unique(value: Any, field: str, existing_values: List[Any]) -> bool:
|
|
"""
|
|
校验字段在列表中是否为唯一
|
|
:param value: 字段值
|
|
:param field: 字段名称
|
|
:param existing_values: 已存在的值列表
|
|
:return: 是否通过校验
|
|
:raises UniqueFieldError: 如果字段值已存在
|
|
"""
|
|
with handle_validation_errors(field, {"value": value, "existing_values": existing_values}):
|
|
if value in existing_values:
|
|
raise UniqueFieldError(f"字段 '{field}' 的值 '{value}' 必须是唯一的", field)
|
|
return True
|