[내일배움단 ai트랙 3기] TIL 221123
2022. 11. 24. 09:35ㆍ스파르타코딩클럽[AI트랙 3기]/TIL
221123
엄청 감동적인 하루다... 솔직히 최종프로젝트 자신이 없어서 팀원들에게 그냥 개인 프로젝트를 하고 혼자 공부할생각이라고 하니까 모두 뜯어말려주시고 원래 팀을바꾸려고했던 분들도 나 끝까지 데리고 가겠다고 .....또 나의 인복이 이렇게.. 허허... 어쨌거나 해봐야지.!
ㅁ프로젝트 1일차
1.로드맵
1)우선 url을 정한다.
2)views.py를 작성한다.
3)serializer를 작성한다.
2.cartview class를 만드는데 get함수 이용
class CartView(APIView):
def get(self, request):
order = Order.objects.filter(user=request.user)
print(order)
cart_serializer = CartViewSerializer(order, many=True)
print(cart_serializer)
return Response(cart_serializer.data, status=status.HTTP_200_OK)
이미 order를 만들어뒀기때문에 굳이 다시할필용 없음. 그냥 order를 가져오자. 단 가져올때 filter사용. get을 사요하면 type에러가 뜬다.. 일단 order를 가져올때 조건을 준다. ()안에가 조건인데 로그인되어있는 user와 order에 저장된 유저가 동일한 경우 가져와줘야한다. 이것이 3번째줄. 그리고 중간중간 정보가 잘 넘어오는지 print로 확인해줄 것.
그 후 시리얼라이저를 한다.
3.시리얼라이저 함수 만들기
class CartViewSerializer(serializers.ModelSerializer):
article_user = serializers.SerializerMethodField()
price = serializers.SerializerMethodField()
size = serializers.SerializerMethodField()
article = ArticleSerializer()
def get_article_user(self, obj):
return obj.user.username
def get_price(self, obj):
return obj.size.price
def get_size(self, obj):
return obj.size.size
class Meta:
model = Order
fields = ('article_user','id','mount','size','article','user','price',)
안에 들어있는것만 가져오려면 그냥 간단하게 class Meta 하고 all 해주면 되지만 우린 모델 외부에서가져올 데이터도 필요하다. 그러면 다음과 2~4번째줄과 같이 변수를 지정해주고 메소드까지 지정해준 후에 가져올 수 있다.
'스파르타코딩클럽[AI트랙 3기] > TIL' 카테고리의 다른 글
| [내일배움단 ai트랙 3기] TIL 221125 (0) | 2022.11.27 |
|---|---|
| [내일배움단 ai트랙 3기] TIL 221124 (0) | 2022.11.25 |
| [내일배움단 ai트랙 3기] TIL 221122 (0) | 2022.11.23 |
| [내일배움단 ai트랙 3기] TIL 221121 (0) | 2022.11.21 |
| [내일배움단 ai트랙 3기] TIL 221118 (0) | 2022.11.21 |