30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# @Time : 2025/3/15 21:22
|
|
# @Author : AngesZhu
|
|
# @File : equal_field_rules.py
|
|
# @Desc : 字段对比
|
|
from typing import Any
|
|
from utils.validation_error_utils import handle_validation_errors, FieldMatchError
|
|
|
|
|
|
# 5. 校验字段是否有对比字段,与规则中的是否相同匹配
|
|
def validate_match(value: Any, field: str, compare_value: Any, compare_field: str) -> bool:
|
|
"""
|
|
校验字段是否与对比字段匹配
|
|
:param value: 字段值
|
|
:param field: 字段名称
|
|
:param compare_value: 对比字段的值
|
|
:param compare_field: 对比字段名称
|
|
:return: 是否通过校验
|
|
:raises FieldMatchError: 如果字段值与对比字段值不匹配
|
|
"""
|
|
with handle_validation_errors(field,
|
|
{"value": value, "compare_value": compare_value, "compare_field": compare_field}):
|
|
if value != compare_value:
|
|
raise FieldMatchError(
|
|
f"字段 '{field}' 的值 '{value}' 必须与字段 '{compare_field}' 的值 '{compare_value}' 匹配",
|
|
field
|
|
)
|
|
return True
|