flask-restless validation_exceptions не работает для нескольких столбцов в моделях flask-sqlalchemy

Я использую Flask-Restless для создания / api / v1 / кандидата. Там я использовал validation_exceptions=[MyValidationError]

# ... code snippet from my models.py ....

class MyValidationError(Exception):
    pass

def validate_required_field(method):
    def wrapper(self, key, string):
        if not string:
            exception = MyValidationError()
            exception.errors = {key: 'must not be empty'}
            raise exception
        return method(self, key, string)
    return wrapper

class Candidate(db.Model):

    __tablename__ = 'candidate'

    # ... snip ...
    first_name = db.Column(db.String(100), nullable=False)  
    phone = db.Column(db.String(20), nullable=False, unique=True)
    # ... snip ...

    @orm.validates('first_name')
    @validate_required_field
    def validate_first_name(self, key, string):
        return string

    @orm.validates('phone')
    @validate_required_field
    def validate_first_name(self, key, string):
        return string

Примечание: я написал validate_required_field декоратор, чтобы избежать повторения кода.

Когда я отправляю данные в /api/v1/candidate с пустым столбцом phone, он проверяет правильность и выдает ошибку

{
    "validation_errors": {
        "phone": "must not be empty"
    }
}

Но когда я передаю пустой столбец first_name, то же самое не происходит :(

Что я делаю неправильно? Пожалуйста помоги


person Hussain    schedule 18.05.2015    source источник


Ответы (1)


Вы продублировали свою функцию validate_first_name для полей phone и first_name.

person Tien Hoang    schedule 06.03.2017