0

バナーを表すDjango-tastypieリソースがあり、バナーがサイトに表示されるたびに増分するインプレッションと呼ばれるフィールドがあります。

class BannerResource(ModelResource):

    owner = fields.ForeignKey('advertisment.api.AdvertiserResource', 'owner', full=True)
    class Meta:
        queryset = Banner.objects.all()
        resource_name = 'banner'
        authorization = Authorization()

最小限の印象のバナーを取得したいのですが、公式ドキュメントには次のようなものはありません。

filtering = {'impressions': ('min',)}

フロントエンドでBackboneJSを使用しており、Backboneコレクションですべてのバナーを取得し、JavaScriptでフィルタリングを実行できますが、より迅速な方法を探しています。何か案は?

ありがとう

4

1 に答える 1

0

X必要以上にインプレッション数が多いバナーを取得したい場合。1 つには、次のようにリソースで可能なフィルタリング操作を定義する必要があります (モデルにimpressionsフィールドがある場合)。

class BannerResource(ModelResource):

    owner = fields.ForeignKey('advertisment.api.AdvertiserResource', 'owner', full=True)

    class Meta:
        queryset = Banner.objects.all()
        resource_name = 'banner'
        authorization = Authorization()

        filtering = { 'impressions' : ALL }

利用可能なオプションについては、フィルタリングに関する Tastypie のドキュメントを参照してください。

次に、次のリクエストを行った場合:

GET http://<your_host>/v1/banners?impressions__gte=X

必要なものを取得する必要があります。

于 2012-08-27T17:08:52.063 に答える