基于相同形式的其他 wtforms.validators 进行验证? 即基于复选框的 URL 或电子邮件

问题描述

希望这不是太复杂,但我觉得我可能需要在这里应用 wtforms 之外的验证...

我有一个 StringField,我想根据用户单击的复选框将其验证为电子邮件或 URL。理想情况下,我想在实际表单字段中添加显示“mailto:”,然后再将其发送到 POST。

我可以使用验证方法来完成此操作吗?或者有更好的方法解决这个问题吗? TIA!

from wtforms import StringField,SubmitField,BooleanField
from wtforms.validators import Datarequired,ValidationError,Email,URL

class LinkForm(FlaskForm):
    name = StringField(u'Page Name',validators=[Datarequired()])

    url = StringField(u'Address (URL or Email)',validators=[Datarequired(),URL()])
    mailto = BooleanField(u'This is an email address') #checkBox
    
    submit = SubmitField(u'Submit')

    def validate_url(self,url):
        link = Link.query.filter_by(url=url.data).first(

(现在 validate_url 方法只检查具有相同 url 的条目)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)