내일배움캠프/내일배움캠프 TIL

내일배움캠프 TIL 45일차

sogummi 2023. 5. 13. 20:47

class BookManage(APIView):
    permission_classes = [permissions.IsAuthenticated]

    def get(self, request, pk):
        all_books = get_object_or_404(Book, id=pk)
        serializer = BookSerializer(all_books)
        redirect_url = reverse('mypagelist', args=[str(all_books.pk)])
        return redirect(redirect_url)
        # 마이페이지 에약 상세로 전달
 문제 : 
  같은 get메서드가 있어서 마이페이지로 redirect시킴


시도 : 

        # return redirect('/manager/rooms/')
        # return redirect({serializer.data}, '/manage/mypagelist/'+str(all_books.id)+'/')
        # return redirect(f'/manage/mypagelist/{all_books.id}/', {serializer.data})
        # redirect_url = f'/manage/mypagelist/{all_books.id}/?{(serializer.data)}'
        # return redirect(redirect_url)

에러 :
1 TypeError: get() got an unexpected keyword argument '_id'
2django.urls.exceptions.NoReverseMatch: Reverse for 'MyBookReviewCreate' not found. 'MyBookReviewCreate' is not a valid view function or pattern name.
=> url네임으로 지정해줘야함 
3 return redirect({serializer.data}, '/manage/mypagelist/'+str(all_books.id)+'/')
TypeError: unhashable type: 'ReturnDict' 


고쳐짐 
    path('mypagelist/<int:_id>/', views.MyPage.as_view(), name='mypagelist'),
=> 
    path('mypagelist/<int:pk>/', views.MyPage.as_view(), name='mypagelist'),


결과
[12/May/2023 23:03:33] "GET /manager/rooms/book/2/ HTTP/1.1" 302 0
[12/May/2023 23:03:33] "GET /users/mypagelist/2/ HTTP/1.1" 200 1973
302 상태코드 : 임시이동을 나타냄 (영구이동은 301)