티스토리 뷰
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 |
댓글