Study Anything 🧐

μ„œν‰ μž‘μ„± (5) - μ„œν‰ μˆ˜μ •ν•˜κ³  μ‚­μ œν•˜κΈ° (PUT, DELETE) λ³Έλ¬Έ

ν”„λ‘œμ νŠΈ/[Web] μ„œν‰ μž‘μ„± μ‚¬μ΄νŠΈ

μ„œν‰ μž‘μ„± (5) - μ„œν‰ μˆ˜μ •ν•˜κ³  μ‚­μ œν•˜κΈ° (PUT, DELETE)

솔 2022. 2. 13. 23:05

μ €λ²ˆ ν¬μŠ€νŠΈμ—μ„œλŠ” μ„œν‰μ„ μž‘μ„±ν•˜κ³  λΆˆλŸ¬μ˜€λŠ”(μ‘°νšŒν•˜λŠ”) ν•¨μˆ˜λ₯Ό μž‘μ„±ν–ˆλ‹€.

μ΄λ²ˆμ—λŠ” CRUD 쀑 Update, Delete κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” PUT, DELETE ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄λ³΄λ €κ³  ν•œλ‹€.

κΈ°λ³Έ κ΅¬μ‘°λŠ” 이전에 μž‘μ„±ν•œ ν¬μŠ€νŠΈμ—μ„œ 확인할 수 μžˆλ‹€.

 

 

 

(1) app/urls.py μˆ˜μ •

post, get κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ ν˜ΈμΆœλ˜λŠ” url 을 ν•¨μˆ˜μ™€ μ—°κ²°ν•œλ‹€.

path('edit/', views.ReviewView.as_view()),
path('delete/', views.ReviewView.as_view())

 

 

 

(2) app/views.py νŒŒμΌμ— ν•¨μˆ˜ μž‘μ„±

APIView 클래슀λ₯Ό 상속받아 μž‘μ„±ν•œ 클래슀 μ•ˆμ— put, delete ν•¨μˆ˜λ₯Ό μž‘μ„±ν•œλ‹€.

...
    def put(self, request):
        data = request.data
        rid = data.get('id')
        review = Review.objects.get(id=rid)
        review.reviewTitle = data.get('rtitle')
        review.reviewRate = 0,  # 좔후에 평점 λ°›μ•„μ™€μ„œ μ €μž₯
        review.reviewTxt = data.get('text')
        return Response({'message':'μ„œν‰ μˆ˜μ •μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.'}, status=status.HTTP_200_OK)

    def delete(self, request):
        data = request.data
        rid = data.get('id')
        review = Review.objects.get(id=rid)
        review.delete()
        return Response({'message':'μ„œν‰ μ‚­μ œκ°€ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.'}, status=status.HTTP_200_OK)
...

 

put ν•¨μˆ˜μ—μ„œλŠ” PK인 μ„œν‰μ˜ id λ₯Ό λ°›μ•„μ™€μ„œ ν•΄λ‹Ή μ„œν‰μ„ 뢈러온 ν›„,

μ„œν‰μ˜ μˆ˜μ •λœ ν•„λ“œλ₯Ό μˆ˜μ •λœ κ°’μœΌλ‘œ 직접 λ³€κ²½ν•œλ‹€.

 

delete ν•¨μˆ˜μ—μ„œλŠ” PK인 μ„œν‰μ˜ id λ₯Ό λ°›μ•„μ˜€κ³  ν•΄λ‹Ήν•˜λŠ” μ„œν‰μ„ 뢈러온 ν›„, κ·Έ μ„œν‰μ„ 직접 μ‚­μ œν•œλ‹€.

 

μ΄λ ‡κ²Œ 클래슀λ₯Ό 상속받아 Update, Delete κΈ°λŠ₯을 κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•˜μ˜€λ‹€.

 

 

 

 

728x90
Comments