Удаление по id из MongoDB в приложении Angular-Django

Я написал следующий код для удаления определенных клиентов из коллекции MongoDB:

Ангулярная служба:

deletepost(id: number): Observable<Post> {
    const url = `${this.baseApiUrl}` + `/handle_post/` + id;
    return this.httpClient.delete<Post>(url)
      .pipe(
        retry(3),
        catchError(this.handleError)
      );
}

Django view:

@csrf_exempt
@api_view(['GET', 'DELETE', 'PUT'])
def handle_post_by_id(request, id):

    try:
        post = PostModel.objects.get(pk=id)
    except PostModel.DoesNotExist:
        exceptionError = {
            'message': "Post with id = %s" %id,
            'posts': "[]",
            'error': ""
        }
        return JsonResponse(exceptionError, status=status.HTTP_404_NOT_FOUND) 

    if request.method == 'DELETE':
        try:
            post.delete()
            posts_serializer = PostModelSerializer(post)
            return HttpResponse(status=status.HTTP_204_NO_CONTENT)
        except:
            exceptionError = {
                'message': "Cannot delete post!",
                'posts': [posts_serializer.data],
                'error': ""
            }
            return JsonResponse(exceptionError, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

Он никогда не достигает этого метода, который принимает id, а вместо этого переходит к следующему методу:

@csrf_exempt
@api_view(['GET', 'POST', 'DELETE', 'PUT'])
def handle_post(request):

    if request.method == 'DELETE':
        try:
            PostModel.objects.all().delete()
            posts_collection.delete_many({})
            return HttpResponse(status=status.HTTP_204_NO_CONTENT)
        except:
            exceptionError = {
                'message': "Cannot delete successfully!",
                'customers': "[]",
                'error': ""
            }
            return JsonResponse(exceptionError, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

Мои URL следующие:

urlpatterns = [
    url(r'^handle_post/', handle_post),
    url(r'^handle_post/(?P<id>\d+)/$', handle_post_by_id),
]

Что я делаю не так, что когда я пытаюсь удалить клиента с id, он переходит к другому методу и удаляет всех?

Вернуться на верх