2013-08-08 2 views
1

위해 나는 그것이 텍스트 역할이라면 내 HyperlinkedModelSerializer 클래스는 이미지 URL과 이미지를 표시하지 할장고 - 나머지 프레임 워크 다른 필드는 직렬화

[ 
    { 
     "url": "/api/post/12/", 
     "user": "/api/users/1/", 
     "created": "2013-08-06T04:52:28Z", 
     "updated": "2013-08-06T04:52:28Z", 
     "date": "2013-08-06T04:52:28Z", 
     "show": true, 
     "title": "test post", 
     "body": null, 
     "role": "Text", 
     "image_url": "", 
     "image": "" 
    }, 
    { 
     "url": "/api/post/13/", 
     "user": "/api/users/1/", 
     "created": "2013-08-06T04:53:19Z", 
     "updated": "2013-08-06T04:53:19Z", 
     "date": "2013-08-06T04:53:19Z", 
     "show": true, 
     "title": "test post", 
     "body": null, 
     "role": "Image", 
     "image_url": "http://127.0.0.1:8000/media/photos/photo_1.jpg", 
     "image": "photos/photo_1.jpg" 
    } 
] 

같은 예를 가지고있다.

이것이 가능합니까?

답변

3

케이스의 불필요한 입력란을 제거하기 위해 serializer 하위 클래스에서 to_native을 무시할 수 있습니다. 같은

뭔가 :

def to_native(self, obj): 
    as_native = super(MySerializer, self).to_native(obj) 

    # Remove image_url and image fields if Text role. 
    if as_native["role"] == "Text": 
     as_native.pop('image_url', None) 
     as_native.pop('image', None) 

    return as_native 

나는이 도움이되기를 바랍니다.

+0

큰 도움을 주셨습니다. 도움에 감사드립니다! – Mike

관련 문제