自定义API函数

时间:2017-01-26 22:12:45

标签: angularjs django django-rest-framework

我正在使用Django Rest Framework和Angular来构建应用程序。我为我的模型创建了Serializers和ModelViewSet类,我想通过Angular在前端访问它们。

目前一切正常,但我希望功能超越基本操作。

现在,我只能从我的前端服务执行CRUD查询。但是,我想创建一个“最新”或更具体的功能。

最好,我希望后端模型与其对应的Angular资源进行通信。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您只需在Django视图集中定义自定义端点。

class AccountViewSet(viewsets.ModelViewSet):
    """
    A simple ViewSet for viewing and editing the accounts
    associated with the user.
    """
    serializer_class = AccountSerializer
    permission_classes = [IsAccountAdminOrReadOnly]

    @list_route(methods=['get'])
    def get_most_recent(self):
        <get the most recent account code here>
        return Request(data, status=200)

然后在您的角度代码中,您只需向正确的端点发出请求......类似于http://yoururl.com/accounts/get_most_recent。您可以通过定义您希望在方法数组中接受哪些动词来使用任何REST动词(GET,POST ...)执行此操作。

文档在这里:http://www.django-rest-framework.org/api-guide/viewsets/#modelviewset