在 Masonite 中验证表单
Validating a form in Masonite
我正在尝试使用 Masonite 中的验证器引擎来验证表单数据。每个验证器都独立工作,但是当我尝试将一堆验证器链接在一起时它不起作用。
errors = request.validate(
validate.when(
validate.exists(['title', 'body', 'lat', 'lon'])
).then(
validate.string(['title', 'body']),
# regex to validate a float
validate.regex(['lat', 'lon'], pattern='[+-]?(?=\d*[.eE])(?=\.?\d)\d*\.?\d*(?:[eE][+-]?\d+)?')
))
if errors:
return response.redirect('/create-post').with_errors(errors)
上面的验证器允许我提交一个空表单(它不应该,但它似乎没有执行 'validate.exists' 检查),但是如果我在每个表单字段中输入数据, 'validate.regex' 似乎对纬度和经度数据有效。
我不太确定我做错了什么?
但这确实有效。先用validate.required检查表格,如果没有错误,再用validate.regex检查。
errors = request.validate(
validate.required(['title', 'body', 'lat', 'lon']))
if not errors:
errors = request.validate(
validate.regex(['lat', 'lon'], pattern='[+-]?(?=\d*[.eE])(?=\.?\d)\d*\.?\d*(?:[eE][+-]?\d+)?'))
我正在尝试使用 Masonite 中的验证器引擎来验证表单数据。每个验证器都独立工作,但是当我尝试将一堆验证器链接在一起时它不起作用。
errors = request.validate(
validate.when(
validate.exists(['title', 'body', 'lat', 'lon'])
).then(
validate.string(['title', 'body']),
# regex to validate a float
validate.regex(['lat', 'lon'], pattern='[+-]?(?=\d*[.eE])(?=\.?\d)\d*\.?\d*(?:[eE][+-]?\d+)?')
))
if errors:
return response.redirect('/create-post').with_errors(errors)
上面的验证器允许我提交一个空表单(它不应该,但它似乎没有执行 'validate.exists' 检查),但是如果我在每个表单字段中输入数据, 'validate.regex' 似乎对纬度和经度数据有效。
我不太确定我做错了什么?
但这确实有效。先用validate.required检查表格,如果没有错误,再用validate.regex检查。
errors = request.validate(
validate.required(['title', 'body', 'lat', 'lon']))
if not errors:
errors = request.validate(
validate.regex(['lat', 'lon'], pattern='[+-]?(?=\d*[.eE])(?=\.?\d)\d*\.?\d*(?:[eE][+-]?\d+)?'))