Форум сайта python.su
Здравствуйте! Пытаюсь провалидировать json, точнее словарь, полученный его декодированием:
from schematics.exceptions import ValidationError from schematics.models import Model from schematics.types import DateTimeType class TimeIntervalData(Model): start = DateTimeType(formats='%H:%M') end = DateTimeType(formats='%H:%M') def check_interval(self, start, end): if start > end: raise ValidationError('Error') def validate_start(self, data, value): self.check_interval(data['start'], data['end']) time_interval = {'start': '09:00', 'end': '12:00'} model = TimeIntervalData(time_interval) model.validate()
Traceback (most recent call last): File "/home/stright/desktop/test/test.py", line 21, in <module> model.validate() File "/home/stright/desktop/test/env/lib/python3.5/site-packages/schematics/models.py", line 259, in validate strict=strict) File "/home/stright/desktop/test/env/lib/python3.5/site-packages/schematics/validate.py", line 51, in validate instance_errors = _validate_model(cls, data) File "/home/stright/desktop/test/env/lib/python3.5/site-packages/schematics/validate.py", line 80, in _validate_model cls._validator_functions[field_name](cls, context, value) File "/home/stright/desktop/test/test.py", line 15, in validate_start self.check_interval(data['start'], data['end']) TypeError: check_interval() missing 1 required positional argument: 'end'
Офлайн