내일배움캠프 TIL 45일차
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)