Когда я использую cerberus для проверки ввода данных, у меня возникает проблема, потому что я использую ключ по умолчанию для настройки значения, но в той же схеме я использую другое поле со свойством, исключающим указание на поле, которое имеет значение по умолчанию.
Это конфигурация схемы, которую я использую:
# -*- coding: utf-8 -*-
# !/usr/bin/env python3
from src.helpers.date_helper import DateHelper
initial_date = DateHelper().get_first_day_of_working_week()
schema = {
"initial_date": {
"type": "string",
"regex": r"\d{4}[-/]\d{2}[-/]\d{2}",
"default": initial_date,
"dependencies": "final_date",
},
"final_date": {
"type": "string",
"regex": r"\d{4}[-/]\d{2}[-/]\d{2}",
"default": DateHelper().get_final_day_of_working_week(initial_date),
"dependencies": "initial_date"
},
"days": {
"type": "integer",
"default": "7",
"coerce": lambda x: int(x),
"excludes": ["final_date", "initial_date"],
},
"latitude": {
"type": "number",
"required": True,
"coerce": lambda x: float(x),
"dependencies": "longitude",
},
"longitude": {
"type": "number",
"required": True,
"coerce": lambda x: float(x),
"dependencies": "latitude",
},
}
Когда я выполняю проверку для этой конфигурации: {"days": "15", "latitude": "-9.97","longitude": "-67.81"}
Ответ, который я получаю:{'days': ["'final_date', 'initial_date' must not be present with 'days'"]}
Я хотел бы знать, как можно использовать значение по умолчанию и исключить свойство без изменения механизма проверки.