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)

「名前」、「電子メール」、「メッセージ」の 3 つのフィールドをアカウントに電子メールで送信する単純なフォームの作成に問題があります。フォームが送信されると、「名前」のみが認識されて送信されますが、他の 2 つの変数は常に NoneType オブジェクトを返します。したがって、メールは ['Person's Name', 'None', 'None'] のようになります。最後の 2 つの変数が最初の変数とどう違うのかわかりません。何か助けはありますか?ありがとう。

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 に答える