Flask SQLAlchemy& SQLite:错误绑定参数

时间:2017-02-06 15:58:20

标签: python sqlite flask sqlalchemy

尝试添加新事件时收到错误:

InterfaceError: (sqlite3.InterfaceError) Error binding parameter 7 - probably unsupported type. [SQL: u'INSERT INTO events (name, city, location, description, sport, starting, ending, price, creator_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'] [parameters: (u'My Event', u'Milan', u'Some Description', u'123 My Location', u'Football/Soccer', '2018-01-01 10:10:00.000000', '2018-01-01 17:00:00.000000', Decimal('0.00'), 1)]

我的活动模特:

class Event(db.Model):

    __tablename__ = "events"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(60))
    city = db.Column(db.String(60))
    location = db.Column(db.String(60))
    description = db.Column(db.Text())
    sport = db.Column(db.String(60))
    starting = db.Column(db.DateTime)
    ending = db.Column(db.DateTime)
    price = db.Column(db.Integer)
    creator_id = db.Column(db.Integer, db.ForeignKey("users.id"))
    creator = db.relationship("User", backref="created_events")
    attendees = db.relationship("User", secondary=association_table,
                            back_populates="joined_events")
    comments = db.relationship("Comment")

    def __repr__(self):
       return "<Event: {}".format(self.id)   

我的添加活动表格:

class EventForm(FlaskForm):

    name = StringField(validators=[DataRequired()])
    description = TextAreaField()
    city = SelectField(choices=CITIES, validators=[DataRequired()])
    location = StringField(validators=[DataRequired()])
    sport = SelectField(choices=SPORTS, validators=[DataRequired()])
    start_date = DateField(validators=[DataRequired()])
    start_time = TimeField(validators=[DataRequired()])
    end_date = DateField(validators=[DataRequired()])
    end_time = TimeField(validators=[DataRequired()])
    price = DecimalField('Price (Euros)', default=0)
    submit = SubmitField()

我的添加活动视图:

def add_event():

form = EventForm()

if form.validate_on_submit():
    starting = datetime.datetime.combine(form.start_date.data,
                                         form.start_time.data)
    ending = datetime.datetime.combine(form.end_date.data,
                                       form.end_time.data)

    event = Event(name=form.name.data,
                  sport=form.sport.data,
                  description=form.description.data,
                  starting=starting,
                  ending=ending,
                  location=form.location.data,
                  city=form.city.data,
                  price=form.price.data,
                  creator_id=current_user.id,
                  creator=current_user)

    # add event to the database
    db.session.add(event)
    db.session.commit()
    flash('You have successfully added a new event.')

    # redirect to event page
    return redirect(url_for('events.list_events'))

我不知道为什么我会收到错误,因为&#34;结束&#34;参数是DateTime值。我错过了什么?

0 个答案:

没有答案