对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。
|
|
在配置文件中增加过滤后端的设置:
|
|
在视图中添加filter_fields属性,指定可以过滤的字段
|
|
对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序。
使用方法:
在类视图中设置filter_backends,使用rest_framework.filters.OrderingFilter
过滤器,REST framework会在请求的查询字符串参数中检查是否包含了ordering参数,如果包含了ordering参数,则按照ordering参数指明的排序字段对数据集进行排序。
前端可以传递的ordering参数的可选字段值需要在ordering_fields中指明。
示例:
|
|
如果需要在过滤以后再次进行排序,则需要两者结合!
|
|
REST framework提供了分页的支持。
我们可以在配置文件中设置全局的分页方式,如:
|
|
也可通过自定义Pagination类,来为视图添加不同分页行为。在视图中通过pagination_clas
属性来指明。
|
|
注意:如果在视图内关闭分页功能,只需在视图内设置
|
|
1) PageNumberPagination
前端访问网址形式:
|
|
可以在子类中定义的属性:
|
|
2)LimitOffsetPagination
前端访问网址形式:
|
|
可以在子类中定义的属性:
PAGE_SIZE
设置一直
|
|
3)CursorPagination
前端访问网址形式:
|
|
可以在子类中定义的属性:
|
|
|
|
REST framework提供了异常处理,我们可以自定义异常处理函数。
|
|
在配置文件中声明自定义的异常处理
|
|
如果未声明,会采用默认的方式,如下
rest_frame/settings.py
|
|
补充上处理关于数据库的异常
|
|
也就是说,很多的没有在上面列出来的异常,就需要我们在自定义异常中自己处理了。
原文:https://www.cnblogs.com/liqiangwei/p/14201062.html