Django rest框架无需视图集即可执行自定义功能(远程过程调用)

时间:2018-09-22 16:43:48

标签: django rest api django-rest-framework

我正在尝试使用 Django Rest Framework(DRF)从AJAX到Django服务器进行远程过程调用(通过Ajax对服务器的常规调用)来执行维护任务。

问题

我只有模型视图集,并且只需要执行一个基本的服务器任务,例如,删除一个模型中的所有项目。

解决方案

使用DRF中的通用apiview。请参阅下面的答案代码。

1 个答案:

答案 0 :(得分:0)

希望有帮助:

# 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调用此功能。