【发布时间】:2016-09-14 11:06:30
【问题描述】:
我有以下 GenericViewSet,我正在尝试为视图集实现分页,这是我的视图集
class UserAccountViewSet(viewsets.GenericViewSet,
mixins.CreateModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin):
queryset = UserAccount.objects.all()
lookup_field = 'username'
lookup_url_kwarg = "username"
serializer_class = UserAccountSerializer
page_size = 25
page_size_query_param = 'page_size'
max_page_size = 1000
def list(self, request):
queryset = self.queryset
if request.GET.dict():
return Response(status=status.HTTP_501_NOT_IMPLEMENTED)
serializer = UserListSerializer(queryset, many=True)
return Response(serializer.data)
def retrieve(self, request, **kwargs):
pass
def create(self, request, *args, **kwargs):
pass
def update(self, request, *args, **kwargs):
pass
def destroy(self, request, *args, **kwargs):
pass
这是我的配置,
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
),
'DEFAULT_THROTTLE_CLASSES': (
'rest_framework.throttling.AnonRateThrottle',
'rest_framework.throttling.UserRateThrottle'
),
'DEFAULT_THROTTLE_RATES': {
'anon': '100/day',
'user': '100/day'
}
}
它没有分页,我怎样才能使分页与 DRF 一起工作?
谢谢。
【问题讨论】:
-
你为什么只用一个 pass 语句覆盖
list、retrieve等函数?相反,您应该只使用ModelViewSet代替GenericViewSet而不使用所有这些功能。 -
请看下面的链接,它可以帮助你。 stackoverflow.com/questions/31785966/…
-
@Deena 请添加您的
list方法的代码。 -
你想用
request.GET.dict()检查什么? -
没有调用负责分页的 DRF 代码。您应该在该行之后调用
super()。
标签: python django pagination django-rest-framework