Flask 验证装饰器同时验证多个字段

2024-05-18 16:17:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用@validates decoratorsql炼金术.orm从烧瓶到验证字段,只要所有字段相互独立,一切都进展顺利,例如:

@validates('field_one')
def validates_field_one(self, key, value):
   #field one validation

@validates('field_two')
def validates_field_two(self, key, value):
   #field two validation

但是,现在我需要进行一些验证,这将需要同时访问字段“_1”和“字段2”。validates似乎接受validates decorator的多个参数,但是它只会为每个参数运行一次验证函数,如下所示:

^{pr2}$

结果产生了验证字段“1”和“验证字段2”的工作流程。但是,我想同时验证两者(一个简单的例子是断言field_1的值不是field_2的值,其中一个例子是在图中不允许自循环,其中field_1和field_2引用节点,并且它在一条边上执行验证)。最好的办法是什么?在


Tags: keyselffield参数烧瓶valuedeform
1条回答
网友
1楼 · 发布于 2024-05-18 16:17:03

按照在模型上定义的顺序对字段排序。然后检查最后一个字段是否是正在验证的字段。否则只需返回未选中的值。如果验证器正在验证前面的某个字段,则其中一些字段还没有设置。在

@validates('field_one', 'field_two')
def validates_fields(self, key, value):
    if key == 'field_two':
        assert self.field_one != value
    return value

this example。在

相关问题 更多 >

    热门问题