我在做饭了污物接口的对象表示的纸币,如在水法案,电费等填充WTForms形式对象与datetime.date
我使用SQLAlchemy的至处理数据,通过wtforms处理表单,并通过烧瓶进行处理。
这里是我的路线是什么样子,供应形式为编辑现有的账单:
@app.route('/edit_bill/<int:bill_id>', methods = ['GET'])
def edit_bill(bill_id):
s = Session()
bill = s.query(Bill).filter_by(id=bill_id).first()
form = BillForm(obj=Bill)
return render_template('edit_bill.html', form = form)
使用wtforms,我通过该法案的对象到BillForm构造,确保代表议案中的数据进行编辑它填充到表单中。
这是它呛的地方。这里的例外:
AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Bill.date_due has an attribute 'strftime'
现在,我已经浸到蟒蛇外壳,并询问了一项法案,以确保date_due上有一个datetime.date
对象,这是不。我使用Jinja来构建我的前端,所以我研究过创建一个模板过滤器,但我不知道如何使用wtforms,看起来像sqlalchemy是无论如何窒息的。
那么它做了什么?我非常有信心,我只需要弄清楚如何将这个datetime.date
对象变成一个字符串,但我不知道如何去做。
Halp。谢谢!
编辑:这里是BillForm类:
class BillForm(Form):
id = HiddenField()
name = TextField(u'Name:', [validators.required()])
pay_to = TextField(u'Pay To:',[validators.required()])
date_due = DateField(u'Date Due:',[validators.required()])
amount_due = IntegerField(u'Amount Due:', [validators.required()])
date_late = DateField(u'Late After:',[validators.required()])
amount_late = IntegerField(u'Late Amount:', [validators.required()])
date_termination = DateField(u'Termination Date:',[validators.required()])
和映射类,太:
class Bill(Base):
__tablename__ = 'bills'
id = Column(Integer, primary_key=True)
name = Column(String)
pay_to = Column(String)
amount_due = Column(Integer)
date_due = Column(Date)
amount_late = Column(Integer)
date_late = Column(Date)
date_termination = Column(Date)
def __init__(self, name, pay_to, amount_due, date_due, amount_late, date_late, date_termination):
self.name = name
self.pay_to = pay_to
self.amount_due = amount_due
self.date_due = date_due
self.amount_late = amount_late
self.date_late = date_late
self.date_termination = date_termination
def __repr__(self):
return "<Bill ('%s', '%s', '%s', '%s')>" % (self.name, self.pay_to, self.amount_due, self.date_due)
我们可以看看表单代码吗? –