Django rest framework выполняет пользовательскую функцию без viewset (удаленный вызов процедуры) - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь сделать удаленный вызов процедуры (обычный вызов на сервер с помощью ajax) из AJAX на сервер Django с Django Rest Framework (DRF) для задач обслуживания.

Проблема

У меня есть только наборы моделей, и мне нужно только выполнить базовую серверную задачу, например, удалить все элементы в одной модели.

Решение

Использовать универсальный apiview из DRF,Смотрите код ответа ниже.

1 Ответ

0 голосов
/ 22 сентября 2018

Надеюсь, это поможет:

# Basic DRF api view.
@api_view()
# Default Json render, you can use a custom render like text plain, etc.
@renderer_classes([JSONRenderer])
# Authentication by session or basic http
@authentication_classes((SessionAuthentication, BasicAuthentication))
# Basic permission: it requires to be authenticated.
@permission_classes((permissions.IsAuthenticated,))
# The function name will be the name you must use for remote call.
def delete_elements(request):
    # Delete all items from one model
    deleted_items = MyModel.objects.all().delete()
    json_response = {"ok": True}
    return Response(json_response)

Теперь вы можете использовать AJAX или CLI для вызова этой функции.

...