在使用Flask/SQLalchemy構建的應用程序中實現WTForms SelectField時遇到了一些錯誤。SelectField WTforms無效選擇和sa_instance_state
下面是相關代碼:
Views.py:
form = ReviewForm()
if form.validate_on_submit():
review = Review(rating=form.rating.data, body=form.body.data, pub_date=datetime.utcnow(), author=g.user, item=thing)
db.session.add(review)
db.session.commit()
Models.py
RATING_CHOICES = (
(1, '1'),
(2, 2),
(3, 3),
(4, 4),
(5, 5),
)
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
pub_date = db.Column(db.DateTime)
body = db.Column(db.Text)
rating = db.Column(db.Integer)
Forms.py
class ReviewForm(Form):
rating = SelectField('rating', choices=Review.RATING_CHOICES, validators=[Required()])
body = TextAreaField('body', validators=[Required()])
tags = StringField('tags', validators=[Required()])
所以,現在,代碼是這樣的......我得到了「不是一個有效的選擇」問題。我假設它將我的評價解釋爲一個字符串或元組或其他東西,因此,它不能正確輸入到rating=db.column(db.Integer)
。
然而,在添加要挾= int值selectfield爭論,我開始遇到:
AttributeError: 'AnonymousUserMixin' object has no attribute '_sa_instance_state'
File "", line 194, in blank
review = Review(rating=form.rating.data, body=form.body.data, pub_date=datetime.utcnow(), author=g.user, item=thing)
File "<string>", line 4, in __init__
我清楚這裏的東西或發送問題的話...我只是沒有足夠精明,挖進入表單返回並找出它。
只是說明我已經嘗試了coerce = int並且得到了上面的屬性錯誤。任何幫助? – dizzy