Django自定义分页 - 在settings.py

时间:2015-06-18 13:54:24

标签: python django pagination django-rest-framework

6.30.15 - 我如何使这个问题更好,更有益于其他人?反馈会有所帮助。谢谢!

我需要为Django Rest Framework设置自定义分页。我创建了一个pagination.py文件,并将分页设置放在一个类下面。

在Settings.py中,我必须使用' DEFAULT_PAGINATION_CLASS'指向它。但是,我无法获取settings.py来查找它。即使我已经指定了路径。在文档中,我注意到有类似的app.core.pagination'路径 - 我是否必须创建此文件? 我需要在哪里放置这些以便settings.py可以读取它?

'DEFAULT_PAGINATION_CLASS': 
'XXXX_XX_api.static.rest_framework.pagination.CustomPagination' 

更新:6.22.15 我将自定义分页添加到我的设置文件中,但现在我收到了一个奇怪的错误。而且我不确定为什么。在我的代码中,一切似乎都是正确的。在错误中它读取自定义分页,但它表示分页没有定义。有什么想法吗?

 File "/home/dbadmin/epic_ar_api/epic_ar_api/epic_ar_api/pagination.py", line 5, in <module>
    class CustomPagination(pagination.LimitOffsetPagination):
NameError: name 'pagination' is not defined
[22/Jun/2015 13:29:24] "GET /machines/ HTTP/1.1" 500 59
^Cdbadmin@ubuntu:~/epic_ar_api/epic_ar_api$ 

1 个答案:

答案 0 :(得分:1)

您需要在DEFAULT_PAGINATION_CLASS设置词典的全局settings.py文件中添加REST_FRAMEWORK设置。

假设我的CustomPagination班级位于pagination.py my_app的{​​{1}}个文件中。然后我可以做到以下几点:

my_project

#Update:

将以下行添加到 REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'my_project.my_app.pagination.CustomPagination', 'PAGE_SIZE': 100 } 文件中:

pagination.py

这将导入默认的rest_framework分页。