티스토리 뷰

python django

FlexFieldsModelSerializer

내일은 뭐할까 2019. 7. 24. 00:55
from rest_flex_fields import FlexFieldsModelSerializer
from rest_framework import serializers
from app.product.models import ProductPrice, ProductLabel, Product

class ProductMapper(FlexFieldsModelSerializer):
    common_info = serializers.CharField(source='get_common_info')
    category1 = serializers.CharField(source='category1.id')
    address = serializers.CharField(source='address.full_text', allow_null=True)

    expandable_fields = {
        'price': (ProductPriceMapper, {'source': 'price'}),
        'labels': (ProductLabelMapper, {'source': 'labels.all', 'many': True}),
        'partners': (PartnerMapper, {'source': 'partner'})
    }

    class Meta:
        model = Product
        fields = '__all__'

 

restframework 를 사용하고 있고 동적으로 field를 가져오기 위해서 rest_flex_fields의 FlexFieldsModelSerializer를 사용하고 있습니다.

 

위에 시리얼라이즈를 정의하였으면, api를 만들고 호출해봅니다.

API의 조회값 중 원하는 값들만 조회할 경우 fields 파라미터를 사용하여 해당 값들을 조회할 수 있습니다.

{domain}/product?fields=id,name,simple_desc

 

'python django' 카테고리의 다른 글

celery를 사용한 파일 업로더  (0) 2019.12.17
custom field 생성  (0) 2019.07.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함