본문 바로가기

Django

2022-06-08 개발일기 [Django, TOAST UI]

반응형

오늘은 Django 내부에서 serializer 사용하여 데이터 필터링 거친후 외래키를 이용하여 Django 내부 DB model 들을 연계하여 불러오는 작업을 했다. 외래키 자체는 처음 이용해서 앞으로 활용도가 매우 클 것으로 예상된다. Model filed 내부에서 외래키로만 지정을 해주면 직렬화 통해서 데이터 필드를 굳이 context할 필요없이 사용할 수 있는것이 매우 큰 장점으로 보인다.

 

앞으로도 지속적인 활용으로 숙련도를 높여야겠다 !! 파이팅 !!

 

개발스크립트 [api]

class Table(APIView):
    def get(self, request):
        req = request.GET

        x = {
            "result": 'false',
            "data": {
                "contents": []
            }
        }
if req.get('state') == '22':
    order_list = order_list.filter(
        Q(HOPE_DELV_DATE__lte=today.strftime('%Y%m%d')) &
        Q(scm_status='주문수집') &
        ~Q(RECEIVE_ADDR__icontains='제주') &
        Q(RECEIVE_ADDR__regex='[가-힣]+') &
        ~Q(PNAME__product=None)
    )

개발스크립트 [serializer]

class OrderlistSerializer(serializers.ModelSerializer):
    ITEM_NAME = serializers.SerializerMethodField()
    FACTORY = serializers.SerializerMethodField()
    CATEGORY = serializers.SerializerMethodField()
    TOTAL = serializers.SerializerMethodField()

    def get_TOTAL(self, obj):
        try:
            return obj.PNAME.quan * obj.P_EA
        except:
            return ''

    def get_CATEGORY(self, obj):
        try:
             return obj.PNAME.product.category.name
        except:
            return ''

    def get_ITEM_NAME(self, obj):
        try:
            return obj.PNAME.product.name
        except:
            return ''

    def get_FACTORY(self, obj):
        try:
            return obj.PNAME.product.smfactory.name
        except:
            return ''

    class Meta:
        model = Order_list  # product 모델 사용
        fields = '__all__'
반응형