Работа над пользовательской функцией API, которая работает над созданием и обновлением рейтингов
, когда я пытаюсь протестировать запуск функции в Postman, я получаю следующую ошибку:
IntegrityError at /api/movies/1/rate_movie/
UNIQUE constraint failed: API_rating.user_id, API_rating.movie_id
, поэтому я не знаю, может ли ошибка быть в коде или что это за код ниже
@action(detail=True, methods=['POST'])
def rate_movie(self, request, pk=None):
if 'stars' in request.data:
movie = Movie.objects.get(id=pk)
#user = request.user #Can not use now due to lack of auth, login
user = User.objects.get(id=1)
stars = request.data['stars']
try:
rating = Rating.objects.get(user=user.id, movie=movie.id)
rating.stars = stars
rating.save()
serializer = RatingSerializer
response = {'message': 'Rating Updated', 'results': serializer.data}
return Response(response, status=HTTP_200_OK)
except:
rating = Rating.objects.create(user=user, movie=movie, stars=stars)
serializer = RatingSerializer
response = {'message': 'Rating Created', 'results': serializer.data}
return Response(response, status=HTTP_200_OK)
else:
response = {'message':'Stars not selected for rating'}
return Response(response, status=HTTP_400_bad_request)
Наконец, вот изображение образца теста, который я сделал когда я получил ошибку