我在TurboGears中2的形式,具有一个文本字段的电子邮件的列表。有没有一种简单的方法使用ToscaWidgets或FormEncode链接表单验证器的设置和电子邮件,或者我必须为此编写我自己的验证器?
0
A
回答
0
我认为它应该更像下面。它具有尝试每封电子邮件的优势,而不是仅仅停留在第一个无效邮件上。它还会将错误添加到状态,以便您可以分辨哪些错误。
from formencode import FancyValidator, Invalid
from formencode.validators import Email
class EmailList(FancyValidator):
""" Takes a delimited (default is comma) string and returns a list of validated e-mails
Set the delimiter by passing delimiter="A_DELIMITER" to the constructor.
Also takes all arguments a FancyValidator does.
The e-mails will always be stripped of whitespace.
"""
def _to_python(self, value, state):
try:
values = str(value).split(self.delimiter)
except AttributeError:
values = str(value).split(',')
validator = formencode.ForEach(validators.Email())
validator.to_python(values, state)
return [value.strip() for value in values]
0
我想要的是一个验证器,我可以将它放入像String和Int验证器这样的字段中。我发现没有办法做到这一点,除非我创建了自己的验证器。为了完整起见,我在这里发布它,所以其他人可以受益。
1
从http://formencode.org/Validator.html
另一个值得注意的验证器是formencode.compound.All - 这是一个化合物验证器 - 即,它是采用验证作为输入的验证器。模式就是一个例子。在这种情况下,All都会接受一个验证器列表并依次应用它们中的每一个。 formencode.compound.Any是它的赞美,它使用列表中的第一个通过验证器。
0
随着FormEncode validators - 管道和包装,你可以:
from formencode import validators, compound
compound.Pipe(validators.Wrapper(to_python=lambda v: v.split(',')),
validators.Email())
相关问题
- 1. 快递-校验中断校验器链
- 2. formencode有条件验证
- 3. 主塔,FormEncode和外部验证
- 4. 二郎 - 校验
- 5. 校验在Delphi
- 6. 找到校验
- 7. 校验值“1”
- 8. 错误校验
- 9. 校验空值
- 10. 校验值
- 11. Jquery校验和
- 12. 校验失败
- 13. 校验值
- 14. 计算校验
- 15. Formencode和空值
- 16. MD5/SHA1校验和
- 17. 校验值在LINQ
- 18. 校验团块(GAE)
- 19. 校验和解释?
- 20. 增量校验和
- 21. 校验和VBScript中
- 22. 校验和计算
- 23. Axapta的校验类
- 24. C/C++校验位
- 25. Python django sqlalchemy和formencode
- 26. 奇偶校验位,为什么同时有奇偶校验位和偶校验位?
- 27. 什么校验和技术会让我从它的部件的校验和中计算整个校验和?
- 28. 计算校验和时的流链接:避免内存问题
- 29. Isbn生成校验位
- 30. 申请校验为char
有趣,我喜欢的升级。 – Robbie 2009-07-16 02:11:20