Здравствуйте! Пытаюсь провалидировать 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'
Почему возникает такая ошибка? Ведь я вызываю метод check_interval в контексте self, но почему-то первым аргументом он не передается?