0
form=FORM('Your name:',INPUT(_name='_name', requires=IS_NOT_EMPTY()),
          'Your email:',INPUT(_email='_email', requires=IS_NOT_EMPTY()),
          'Your message:',INPUT(_message='_message', requires=IS_NOT_EMPTY()),
          INPUT(_type='submit'))
if form.accepts(request,session):
    response.flash = 'Your information has been sent successfully'
    message = [form.vars._name, form.vars._email, form.vars._message]
    mail.send(to='me@gmail.com', reply_to=form.vars._email,
        subject='Suggestion',
        message='<html>%s</html>' % message)

我无法创建一个简单的表单,它将三个字段通过电子邮件发送到一个帐户 - “名称”、“电子邮件”和“消息”。提交表单时,仅识别并发送“名称”,而其他两个变量始终返回 NoneType 对象。因此,电子邮件看起来像 ['Person's Name', 'None', 'None']。我无法弄清楚最后两个变量与第一个变量有何不同。有什么帮助吗?谢谢。

4

1 回答 1

0

应该:

INPUT(_name='_email', ...),
INPUT(_name='_message', ...),

助手的“_name”参数转换为标签INPUT()的“name”属性。<input>因此,INPUT(_name='email')将导致<input name="_email">,这将导致request.vars._email包含在“_email”输入字段中输入的值,然后将复制到form.vars._email.

于 2012-08-02T03:37:17.287 回答