2012-07-12 142 views
1

我有以下形式的模型:SQLAlchemy的分解日期时间字段

class MyModel(base): 
    # ... 
    datetime = Column(DateTime) 
    # ... 

,并希望建立一个.date.time属性对应于.datetime柱。 SQLA文档显示了几个结合属性(如firstname + lastname => fullname)的示例,但没有用于分解。

我想用@hybrid_property和朋友,我可以做初步分解,但我不确定分配(所以如果n = MyModel.query...one()我希望能够做n.date = d并将其更新.datetime场。)

我的主要RDBMS是MySQL的。 (对于那些对我想要这样做的动机感兴趣的人:我有很多客户端代码,它们是duck-typed以期望.date.time字段,但是很多服务器上的存储过程和触发器需要。单.datetime列)

回答

1

docs say explicitly that you can do this,您需要使用@hybrid.property@value.setter装饰和自己的代码返回预期的格式的日期或时间:

from sqlalchemy.ext.hybrid import hybrid_property 

class SomeClass(object): 
    @hybrid_property 
    def value(self): 
     return self._value 

    @value.setter 
    def value(self, value): 
     self._value = value 

全面披露:我已经使用了property功能,但不是setter功能。

相关问题