1

私のNDBデータモデルは次のようになります

class Foo(ndb.Model):
    created = ndb.DateTimeProperty(auto_now_add=True)
    # some other properties

    @property
    def readable_created(self):
        return readble_time(self.created)

ここreadable_timeで、DateTime の読み取り可能なバージョン (「2 日前」など) を返します。@property デコレーターのおかげで、 として簡単にアクセスできますmyinstance.readable_created。NDB のメソッドを使用して、データを辞書に変換したいと思いますModel.to_dict()。たとえば、テンプレートに書き込むためです。ただし、readable_createdこのメソッドでは無視され、 がmyinstance.to_dict(include=['readable_created'])返されます{}

デコレータを使うのは初めて@propertyなので、何か見落としているのではないでしょうか? これを回避する簡単な方法はありますか?これはバグですか?

ndb to_dict メソッドからのアプローチには、オブジェクトの重要な作業は含まれていませんが、もっと簡単な方法があるはずです。

ありがとう!

4

1 に答える 1

4

これは仕様によるものです。一部のテンプレート エンジンでは属性に直接アクセスできるため、to_dict() を使用する必要はまったくありません (Tim Hoffman が指摘したように)。

于 2013-10-10T21:08:41.827 に答える