我正在尝试设计一种验证表单字段的方案。我决定您可以将验证器列表传递给每个字段,例如,

Field(validators=[email_validator, required_validator])

但后来我想,如果你想将验证器 or 放在一起,而不是 and ing 它们呢?例如,接受加拿大邮政编码或美国邮政编码的字段。当然,我可以创建一个可以接受任何一个的新验证器,但如果我能想出一种允许用户选择的方法,那就太好了。

有没有办法可以操纵按位运算符?
Field(validators = required&(postal_code|zip_code))

还是我只是把事情弄得太复杂了,然后用脚射击自己?

最佳答案

Django 通过使用 Q 对象来解决这个问题,这些对象可以使用 &| 组合来创建更复杂的条件。模仿他们使用的东西可能是一个可以接受的解决方案。

关于用于和/或将事物结合在一起的 Python 语法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3115170/

10-11 02:48