1

次の形式のモデルがあります。

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

.date列に対応すると.timeプロパティを作成したいと考えてい.datetimeます。SQLA のドキュメントには、プロパティ ( など) を結合firstname + lastname => fullnameする例がいくつか示されていますが、分解については何も示されていません。

@hybrid_propertyand friends を使用して最初の分解を行うことができると思いますが、割り当てについては不明です (したがって、フィールドを更新n = MyModel.query...one()できるようにしたい場合)。n.date = d.datetime

私の主要な RDBMS は MySQL です。

(これをやりたいという私の動機に興味がある人のために:期待するダックタイプのクライアント側コード.date.timeフィールドがたくさんありますが、サーバー上の多くのストアドプロシージャとトリガーは単一の.datetime列を期待しています。)

4

1 に答える 1

1

ドキュメントは、あなたがこれを行うことができると明示的に述べています@hybrid.property.andデコレータと独自のコードを使用して@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

于 2012-07-14T03:42:42.837 に答える