#!/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