В настоящее время правило проверки empty
доступно только для строковых типов, но вы можете создать подкласс стандартного валидатора, чтобы он мог обрабатывать списки:
from eve.io.mongo import Validator
class MyValidator(Validator):
def _validate_empty(self, empty, field, value):
# let the standard validation happen
super(Validator, self)._validate_empty(empty, field, value)
# add your custom list validation
if isinstance(value, list) and len(value) == 0 and not empty:
self._error(field, "list cannot be empty")
или, если вы хотите вместо этого предоставить стандартное сообщение об ошибке empty
:
from eve.io.mongo import Validator
from cerberus import errors
class MyValidator(Validator):
def _validate_empty(self, empty, field, value):
# let the standard validation happen
super(Validator, self)._validate_empty(empty, field, value)
# add your custom list validation
if isinstance(value, list) and len(value) == 0 and not empty:
self._error(field, errors.ERROR_EMPTY_NOT_ALLOWED)
Затем вы запускаете свой API следующим образом:
app = Eve(validator=MyValidator)
app.run()
PS: я планирую добавить списки и словари в правило empty
Цербера когда-нибудь в будущем.
person
Nicola Iarocci
schedule
17.05.2014