0

API のコンシューマーが、auto_now=True を使用して datetimefield をフィルタリングできるようにしたいと考えています。警告は、UNIX 形式で実行できるようにすることです (つまり、デフォルト形式である 2013-10-02T16:46:24.030321 の代わりに 1380783641 を使用します)。

次のようにレンダリングするために、すでにフィールドを脱水しました:

    def dehydrate_created_on(self, bundle):

        return bundle.data['created_on'].strftime('%s')

リクエストで渡された値をフィルタリングするために同じことを行うにはどうすればよいですか?

/api/v1/model/?created_on__gt=1380783641

これは ValueError を返します: (フランス語)

"error": [
"Le format de la valeur « 1380783641 » n'est pas valide. Le format correct est AAAA-MM-DD HH:MM[:ss[.uuuuuu]][FH]."
]

ご協力いただきありがとうございます。

4

1 に答える 1

0

ここにあるものに基づくハッキーな回避策は、build_filterメソッドを再定義することです。

def build_filters(self, filters=None):
    if filters is None:
        filters = {}
    orm_filters = super(YourResource, self).build_filters(filters)
    for filt in orm_filters:
        if filt.startswith('created_on'):
            orm_filters[filt] = datetime.datetime.fromtimestamp(float(filters[filt]))
    return orm_filters
于 2013-10-03T10:39:58.567 に答える