1

ユーザーのメールアドレスをデータベースに保存しようとしているメールフォームがあります。モデルは次のようになります。

class EmailForm(db.Model):                                                
  email_address = db.EmailProperty

フォームからのデータが次のように保存されるガイドとして、このようないくつかのチュートリアルを使用してきました。

title = form.title.data,
content = form.content.data

私が同じ慣習に従うとき、書く

email = form.email_address.data

EmailProperty に data 属性がないというエラーがあります。

Google App Engine は初めてですが、ドキュメントで答えが見つかりません。ありがとう!

4

3 に答える 3

5

モデルをフォームとして使用しようとしていますが、これは 2 つの異なるものです。

別のステップが必要です

from flaskext import wtf
from flaskext.wtf import validators

class EmailModel(db.Model):
    email_address = db.EmailProperty

class EmailForm(wtf.Form):
    email = wtf.TextField('Email Address', validators=[validators.Email()])

これで、ビューでフォームをそのように使用できます。

@app.route('/register', methods=['POST']
def register():
    form = EmailForm()
    if form.validate_on_submit():
        # This part saves the data from the form to the model.
        email_model = EmailModel(email_address = form.email.data)
        email.put()
于 2013-07-09T00:05:29.373 に答える
0
  1. 古い db クラスを使用しています。代わりに ndb を使用し、db を ndb に置き換えてください ( https://docs.google.com/document/d/1AefylbadN456_Z7BZOpZEXDq8cR8LYu7QgI7bt5V0Iw/edit?ndplr=1&pli=1 )

  2. EmailProperty の代わりに StringProperty を使用してください。

    class UserEmail(ndb.Model):                                                
      email_address = ndb.StringProperty()
    
  3. モデルをデータストアに入れるには、これを行います

    user = UserEmail(email_address='foobar@gmail.com')
    user.put()
    
于 2013-07-10T19:02:16.907 に答える
0

これはあなたが探しているものだと思います: https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#Email

email_address = デシベル.EmailProperty()

email_address = db.Email("larry@example.com")

于 2013-07-08T23:15:54.517 に答える