DRF:

2016-12-21 4 views
0

私はDjangoの== 1.10とdjangorestframeworkの== 3.4.6DRF:

を使用してサーバーサイドを構築していたカスタムレンダラにリクエストオブジェクトを取得します。私はJSONRendererを構築する必要があり:

class CustomJSONRenderer(JSONRenderer): 
    def render(self, data, accepted_media_type=None, renderer_context=None): 
     meta_fields = ["temp_save", "subject", "visit"] 
     a = {"fields": {}} 
     for k in data: 
      try: 
       meta_fields.index(k) # Crashes with ValueError if not found 
       a[k] = data[k] 
      except ValueError: 
       a["fields"][k] = data[k] 
     return super(CustomJSONRenderer, self).render(a, accepted_media_type, renderer_context) 

質問:ビューrequestオブジェクトを取得することは可能ですか?私は、特にあなたが以下のようrenderer_contextからの要求を取得できるURLパラメータ(例えばrequest.kwargs['pk']

+0

私の回答を更新しました... @ Vingtoft – Devansh

答えて

2

にアクセスしたい

request = renderer_context['request'] 

あなたのコード:

class CustomJSONRenderer(JSONRenderer): 
    def render(self, data, accepted_media_type=None, renderer_context=None): 
     request = renderer_context['request'] or None 
     meta_fields = ["temp_save", "subject", "visit"] 
     a = {"fields": {}} 
     for k in data: 
      try: 
       meta_fields.index(k) # Crashes with ValueError if not found 
       a[k] = data[k] 
      except ValueError: 
       a["fields"][k] = data[k] 
     return super(CustomJSONRenderer, self).render(a, accepted_media_type, renderer_context) 

が、これはあなたを助けるかもしれませ

+0

次のエラーが表示されます。AttributeError: 'DosageRenderer'オブジェクトには属性 'renderer_conがありませんテキスト ' – Vingtoft

+0

あなたはほとんどそうだった:私は、関数 "レンダリング"にパラメタとして渡されたrenderer_contextを使う必要があった。私はそれを受け入れるためにあなたの答えを更新してください。 – Vingtoft

+0

あなたのコードで '要求'にアクセスしたいと思っています。 – Devansh

関連する問題