class WatchListView(View):
@token_decorator
def post(self, request):
try:
data = json.loads(request.body)
if not Film.objects.filter(id = data['film_id']).exists:
return JsonResponse({'message' : 'FILM_DOES_NOT_EXIST'}, status = 404)
film = Film.objects.get(id = data['film_id'])
user = request.user
wish, is_created = WatchList.objects.get_or_create(film = film, user = user)
if not is_created:
wish.delete()
return JsonResponse({'message' : 'WATCH_LIST_DELETED'}, status = 204)
return JsonResponse({'message' : 'SUCCESS'}, status = 201)
except KeyError:
return JsonResponse({'message' :'KEY_ERROR'}, status = 400)
보고싶어요 버튼을 클릭 했을 때, 이미 보고싶어요가 되어있으면 데이터 삭제, 없으면 데이터를 저장하도록 할 수 있다.
get_or_create
메서드는 튜플 형식인 (object, created)
으로 값을 반환 한다.