views.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from django.shortcuts import render
  2. from django.shortcuts import HttpResponse
  3. from .models import MyNew
  4. from django.core.paginator import Paginator
  5. from django.shortcuts import get_object_or_404
  6. from pyquery import PyQuery as pq
  7. # Create your views here.
  8. # def company(request):
  9. # html = '<html><body>公司要闻</body></html>'
  10. # return HttpResponse(html)
  11. # def industry(request):
  12. # html = '<html><body>行业新闻</body></html>'
  13. # return HttpResponse(html)
  14. # def notice(request):
  15. # html = '<html><body>通知公告</body></html>'
  16. # return HttpResponse(html)
  17. def news(request, newName):
  18. submenu = newName
  19. if newName == 'company':
  20. newName = '企业要闻'
  21. elif newName == 'industry':
  22. newName = '行业新闻'
  23. else:
  24. newName = '通知公告'
  25. newList = MyNew.objects.all().filter(
  26. newType=newName).order_by('-publishDate')
  27. for mynew in newList:
  28. html = pq(mynew.description)
  29. mynew.mytxt = pq(html)('p').text()
  30. p = Paginator(newList, 5)
  31. if p.num_pages <= 1:
  32. pageData = ''
  33. else:
  34. page = int(request.GET.get('page', 1))
  35. newList = p.page(page)
  36. left = []
  37. right = []
  38. left_has_more = False
  39. right_has_more = False
  40. first = False
  41. last = False
  42. total_pages = p.num_pages
  43. page_range = p.page_range
  44. if page == 1:
  45. right = page_range[page:page + 2]
  46. print(total_pages)
  47. if right[-1] < total_pages - 1:
  48. right_has_more = True
  49. if right[-1] < total_pages:
  50. last = True
  51. elif page == total_pages:
  52. left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
  53. if left[0] > 2:
  54. left_has_more = True
  55. if left[0] > 1:
  56. first = True
  57. else:
  58. left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
  59. right = page_range[page:page + 2]
  60. if left[0] > 2:
  61. left_has_more = True
  62. if left[0] > 1:
  63. first = True
  64. if right[-1] < total_pages - 1:
  65. right_has_more = True
  66. if right[-1] < total_pages:
  67. last = True
  68. pageData = {
  69. 'left': left,
  70. 'right': right,
  71. 'left_has_more': left_has_more,
  72. 'right_has_more': right_has_more,
  73. 'first': first,
  74. 'last': last,
  75. 'total_pages': total_pages,
  76. 'page': page,
  77. }
  78. return render(
  79. request, 'newList.html', {
  80. 'active_menu': 'news',
  81. 'sub_menu': submenu,
  82. 'newName': newName,
  83. 'newList': newList,
  84. 'pageData': pageData,
  85. })
  86. def newDetail(request, id):
  87. mynew = get_object_or_404(MyNew, id=id)
  88. mynew.views += 1
  89. mynew.save()
  90. return render(request, 'newDetail.html', {
  91. 'active_menu': 'news',
  92. 'mynew': mynew,
  93. })
  94. def search(request):
  95. keyword = request.GET.get('keyword')
  96. newList = MyNew.objects.filter(title__icontains=keyword)
  97. newName = "关于 " + "\"" + keyword + "\"" + " 的搜索结果"
  98. return render(request, 'searchList.html', {
  99. 'active_menu': 'news',
  100. 'newName': newName,
  101. 'newList': newList,
  102. })