page.py 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from collections import OrderedDict
  2. from rest_framework.exceptions import APIException
  3. from rest_framework.pagination import PageNumberPagination
  4. from rest_framework.response import Response
  5. from rest_framework.utils.urls import replace_query_param, remove_query_param
  6. from goodsunit.models import ListModel as goods_unit
  7. from goodsclass.models import ListModel as goods_class
  8. from goodsbrand.models import ListModel as goods_brand
  9. from goodscolor.models import ListModel as goods_color
  10. from goodsshape.models import ListModel as goods_shape
  11. from goodsspecs.models import ListModel as goods_specs
  12. from goodsorigin.models import ListModel as goods_origin
  13. from supplier.models import ListModel as supplier
  14. class MyPageNumberPagination(PageNumberPagination):
  15. page_size = 30
  16. page_size_query_param = "max_page"
  17. max_page_size = 1000
  18. page_query_param = 'page'
  19. def get_paginated_response(self, data):
  20. goods_unit_list_data = goods_unit.objects.filter(openid=self.request.auth.openid, is_delete=False)
  21. goods_unit_list = []
  22. for i in range(len(goods_unit_list_data)):
  23. goods_unit_list.append(goods_unit_list_data[i].goods_unit)
  24. goods_class_list_data = goods_class.objects.filter(openid=self.request.auth.openid, is_delete=False)
  25. goods_class_list = []
  26. for i in range(len(goods_class_list_data)):
  27. goods_class_list.append(goods_class_list_data[i].goods_class)
  28. goods_brand_list_data = goods_brand.objects.filter(openid=self.request.auth.openid, is_delete=False)
  29. goods_brand_list = []
  30. for i in range(len(goods_brand_list_data)):
  31. goods_brand_list.append(goods_brand_list_data[i].goods_brand)
  32. goods_color_list_data = goods_color.objects.filter(openid=self.request.auth.openid, is_delete=False)
  33. goods_color_list = []
  34. for i in range(len(goods_color_list_data)):
  35. goods_color_list.append(goods_color_list_data[i].goods_color)
  36. goods_shape_list_data = goods_shape.objects.filter(openid=self.request.auth.openid, is_delete=False)
  37. goods_shape_list = []
  38. for i in range(len(goods_shape_list_data)):
  39. goods_shape_list.append(goods_shape_list_data[i].goods_shape)
  40. goods_specs_list_data = goods_specs.objects.filter(openid=self.request.auth.openid, is_delete=False)
  41. goods_specs_list = []
  42. for i in range(len(goods_specs_list_data)):
  43. goods_specs_list.append(goods_specs_list_data[i].goods_specs)
  44. goods_origin_list_data = goods_origin.objects.filter(openid=self.request.auth.openid, is_delete=False)
  45. goods_origin_list = []
  46. for i in range(len(goods_origin_list_data)):
  47. goods_origin_list.append(goods_origin_list_data[i].goods_origin)
  48. supplier_list_data = supplier.objects.filter(openid=self.request.auth.openid, is_delete=False)
  49. supplier_list = []
  50. for i in range(len(supplier_list_data)):
  51. supplier_list.append(supplier_list_data[i].supplier_name)
  52. return Response(OrderedDict([
  53. ('goods_unit_list', goods_unit_list),
  54. ('goods_class_list', goods_class_list),
  55. ('goods_brand_list', goods_brand_list),
  56. ('goods_color_list', goods_color_list),
  57. ('goods_shape_list', goods_shape_list),
  58. ('goods_specs_list', goods_specs_list),
  59. ('goods_origin_list', goods_origin_list),
  60. ('supplier_list', supplier_list),
  61. ('count', self.page.paginator.count),
  62. ('next', self.get_next_link()),
  63. ('previous', self.get_previous_link()),
  64. ('results', data)
  65. ]))