오픈갤러리 입사 과제를 하고 있었고,
정신차리고 보니 면접도 4개나 잡혔다.
오픈갤러리 입사 과제는 프론트 렌더링까지 포함한 풀스택 과제란 점이 다른 곳과 좀 다르다.
사실 drf랑 프론트 렌더링은 정말 안맞는 조합이다.
코딩을 하면서 그런 생각을 참 많이 하게 되는데...
그래도 난 시리얼라이저가 좋아서 drf를 못 버리겠다.
CBV도 못 버리겠다ㅎㅎㅎ
오늘의 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}