9/13 | TIL |

타샤's 월드·2022년 9월 13일

🌞 시작하는 글


오픈갤러리 입사 과제를 하고 있었고,
정신차리고 보니 면접도 4개나 잡혔다.

오픈갤러리 입사 과제는 프론트 렌더링까지 포함한 풀스택 과제란 점이 다른 곳과 좀 다르다.
사실 drf랑 프론트 렌더링은 정말 안맞는 조합이다.
코딩을 하면서 그런 생각을 참 많이 하게 되는데...
그래도 난 시리얼라이저가 좋아서 drf를 못 버리겠다.
CBV도 못 버리겠다ㅎㅎㅎ

💻 훈련 내용

🎯 오늘의 목표

⭕ Did

💕 What I learned

❌ 기타오류/ 궁금증 해결

오늘의 error는 바로 이것!
request.data가 쿼리딕트로 뽑힌다.ㅜㅜ
내가 원하는대로 수정이 불가능해서 이걸 어찌해야 하나 했는데,
뒤에 copy()를 붙이니 데이터 수정이 가능해졌다.

    def post(self,request):
        data = request.data.copy()
        data['email']=data['email1']+'@'+data['email2']
        data['phone_number']=data['phone1']+'-'+data['phone2']+'-'+data['phone3']

앗...사실 정답은 이거였던듯...ㅎㅎ

이건 그냥 떠올리지 못한 스스로가 어이없는건데
반복되는 함수를 피하기 위해 serializer 안에 딕셔너리를 만들어서 관련된 모든 식을 담았다.

    def get_price(self, obj):
        """_summary_

        Args:
            obj (_type_): _description_

        Returns:
            _type_: _description_
        """
        arts = ArtModel.objects.filter(artist=obj.id).all()
        price = [art.price for art in arts]

        try:
            avg = int(sum(price)/len(price))
        except ZeroDivisionError:
            avg = 0
        
        try:
            max_n = max(price)
        except ValueError:
            max_n = 0 

        try:
            min_n = min(price)
        except ValueError:
            min_n = 0 

        return {'avg': avg, 'max_n':max_n, 'min_n':min_n}
profile
그때 그때 꽂힌것 하는 개발블로그

0개의 댓글