【发布时间】:2015-09-01 14:51:47
【问题描述】:
在我的基于 sqlalchemy 的烧瓶应用中,我有一个这样的模型:
class Foo(object):
start_date = db.Column(db.DateTime())
它工作正常,但是当我使用模板引擎通过 {{ foo.start_date }} 将日期打印到 HTML 页面上时,它会打印出像 2015-8-8 00:00:00 这样的丑陋行。在尝试提出自己的格式时,我想到了一些聪明的方法(至少在我遇到问题之前)
class Foo(object):
start_date = db.Column(db.DateTime())
def __getattr__(self, name):
return "{0}-{1}-{2}".format(self.start_date.year....)
但是,SQLAlchemy 内部的某些东西不喜欢这样。创建新对象时,会引发以下异常:
File "<string>", line 6, in __init__
File "/home/wenliang/work/template/flask/local/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 526, in _declarative_constructor
setattr(self, k, kwargs[k])
File "/home/wenliang/work/template/flask/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 226, in __set__
instance_dict(instance), value, None)
File "/home/wenliang/work/template/flask/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 694, in set
state._modified_event(dict_, self, old)
AttributeError: 'NoneType' object has no attribute '_modified_event'
有人见过这个吗?
【问题讨论】:
标签: python flask sqlalchemy