DRF :

2016-12-21 1 views
0

내가 장고 == 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 개체를 얻을 수 있습니까? 내가 특별히 (예를 들면에게 URL을 매개 변수에 액세스 할 request.kwargs['pk']

+0

내 대답을 업데이트했습니다. @ Vingtoft – Devansh

답변

2

당신은 다음과 같은 renderer_context의 요청을 얻을 수

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

당신은 거의 옳았습니다 : 나는 rendererer_context를 매개 변수로 "render"함수에 전달해야했습니다. 동의 할 수 있도록 답변을 업데이트하십시오. – Vingtoft

+0

코드에서 '요청'에 액세스하려고합니다. – Devansh