views.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. from django.shortcuts import render
  2. from django.shortcuts import HttpResponse
  3. from .models import Product
  4. from django.core.paginator import Paginator
  5. from django.shortcuts import get_object_or_404
  6. # Create your views here.
  7. # def robot(request):
  8. # html = '<html><body>家用机器人</body></html>'
  9. # return HttpResponse(html)
  10. # def monitoring(request):
  11. # html = '<html><body>智能监控</body></html>'
  12. # return HttpResponse(html)
  13. # def face(request):
  14. # html = '<html><body>人脸识别解决方案</body></html>'
  15. # return HttpResponse(html)
  16. def products(request,productName):
  17. submenu=productName
  18. if productName=='robot':
  19. productName='家用机器人'
  20. elif productName=='monitor':
  21. productName='智能监控'
  22. else:
  23. productName='人脸识别解决方案'
  24. productList= Product.objects.all().filter(
  25. productType=productName).order_by('-publishDate')
  26. p = Paginator(productList, 3)
  27. if p.num_pages <= 1:
  28. pageData = ''
  29. else:
  30. page = int(request.GET.get('page', 1))
  31. productList = p.page(page)
  32. left = []
  33. right = []
  34. left_has_more = False
  35. right_has_more = False
  36. first = False
  37. last = False
  38. total_pages = p.num_pages
  39. page_range = p.page_range
  40. if page == 1:
  41. right = page_range[page:page + 2]
  42. print(total_pages)
  43. if right[-1] < total_pages - 1:
  44. right_has_more = True
  45. if right[-1] < total_pages:
  46. last = True
  47. elif page == total_pages:
  48. left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
  49. if left[0] > 2:
  50. left_has_more = True
  51. if left[0] > 1:
  52. first = True
  53. else:
  54. left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
  55. right = page_range[page:page + 2]
  56. if left[0] > 2:
  57. left_has_more = True
  58. if left[0] > 1:
  59. first = True
  60. if right[-1] < total_pages - 1:
  61. right_has_more = True
  62. if right[-1] < total_pages:
  63. last = True
  64. pageData = {
  65. 'left': left,
  66. 'right': right,
  67. 'left_has_more': left_has_more,
  68. 'right_has_more': right_has_more,
  69. 'first': first,
  70. 'last': last,
  71. 'total_pages': total_pages,
  72. 'page': page,
  73. }
  74. return render(
  75. request,'productList.html',{
  76. 'active_menu':'products',
  77. 'sub_menu':submenu,
  78. 'productName':productName,
  79. 'productList':productList,
  80. 'pageData':pageData,
  81. }
  82. )
  83. def productDetail(request,id):
  84. product=get_object_or_404(Product,id=id)
  85. product.views += 1
  86. product.save()
  87. return render(request,'productDetail.html',{
  88. 'active_menu':'products',
  89. 'product':product,
  90. })