2012-07-12 144 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功能。

相關問題