Flask-restless validation_exceptions在flask-sqlalchemy模型中的一些列



我正在使用Flask-Restless创建/api/v1/candidate。这里我用的是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装饰器以避免代码重复。

当我POST数据到/api/v1/candidate与空电话列,它验证它正确,并给我错误

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

但是当我传递空first_name列时,同样的事情不会发生:(

我做错了什么?请帮助

您为phonefirst_name字段复制了函数validate_first_name

相关内容

  • 没有找到相关文章

最新更新