Ich erhalte eine Reihe von Fehlern beim Implementieren eines WTForms SelectField in einer mit Flask/SQLalchemy erstellten Anwendung.SelectField WTforms nicht gültige Auswahl und sa_instance_state
Hier ist der entsprechende Code:
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()])
So jetzt, mit Code wie es ist ... Ich bekomme ein Problem "keine gültige Wahl". Ich gehe davon aus, dass es meine Bewertung als eine Zeichenfolge oder ein Tupel oder etwas interpretiert und daher rating=db.column(db.Integer)
nicht richtig einspeist.
jedoch bei Zugabe coerce = int den SELECT Argumente, beginne ich zu stoßen:
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__
ich eindeutig etwas fehlt hier bin oder etwas falsch zu senden ... Ich bin genug einfach nicht kapieren zu graben in was die Form zurückkehrt und es herausfinden.
Nur eine Notiz, die ich bereits versucht habe, coerce = int und habe den Attributfehler oben. Irgendeine Hilfe? – dizzy