1

django-piston でフォーマットされたコンテンツを含む HTTP レスポンスを返せるようにしたいと考えています。

自分で作成する必要があると思いますrc_factory

私がやりたいことは次のとおりです。

return rc.404({'status': 0,'message': 'This restaurant does not exists.'})

クライアントが探している形式に関して、XMLEmiter、JSONEmiter、または YAMLEmiter によって提供される結果を使用します。

どうやってやるの ?

乾杯

4

1 に答える 1

1

このようなものについてどう思いますか:

# -*- coding: utf-8 -*-
from piston.handler import typemapper
from piston.emitters import Emitter

def getErrorResponse(http_code, payload, em_format='json'):
        emitter, ct = Emitter.get(em_format)
        srl = emitter(payload, typemapper, handler=None, anonymous=False)
        r = srl.render({})
        return HttpResponse(r, content_type=ct, status=http_code)

このように使用するには:

return getErrorResponse(404, {'status': 0,'message': 'This restaurant does not exists.'})

しかし、問題は em_format 属性にあります。

実際には、ハンドラー メソッドは、ハンドラー関数にエミッター_フォーマット属性を追加することで、この情報を取得できます。

...
    def read(self, request, emitter_format=None):
        if emitter_format is None:
            emitter_format = request.GET.get('format', 'json')

        ...
        return getErrorResponse(404, {'status': 0,'message': 'This restaurant does not exists.'}, emitter_format)
于 2010-10-06T07:11:52.753 に答える