views.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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_list_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(newType=newName).order_by('-publishDate')
  26. for mynew in newList:
  27. html=pq(mynew.description)
  28. mynew.mytxt=pq(html)('p').text()
  29. p = Paginator(newList, 5)
  30. if p.num_pages <= 1:
  31. pageData = ''
  32. else:
  33. page = int(request.GET.get('page', 1))
  34. productList = p.page(page)
  35. left = []
  36. right = []
  37. left_has_more = False
  38. right_has_more = False
  39. first = False
  40. last = False
  41. total_pages = p.num_pages
  42. page_range = p.page_range
  43. if page == 1:
  44. right = page_range[page:page + 2]
  45. print(total_pages)
  46. if right[-1] < total_pages - 1:
  47. right_has_more = True
  48. if right[-1] < total_pages:
  49. last = True
  50. elif page == total_pages:
  51. left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
  52. if left[0] > 2:
  53. left_has_more = True
  54. if left[0] > 1:
  55. first = True
  56. else:
  57. left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
  58. right = page_range[page:page + 2]
  59. if left[0] > 2:
  60. left_has_more = True
  61. if left[0] > 1:
  62. first = True
  63. if right[-1] < total_pages - 1:
  64. right_has_more = True
  65. if right[-1] < total_pages:
  66. last = True
  67. pageData = {
  68. 'left': left,
  69. 'right': right,
  70. 'left_has_more': left_has_more,
  71. 'right_has_more': right_has_more,
  72. 'first': first,
  73. 'last': last,
  74. 'total_pages': total_pages,
  75. 'page': page,
  76. }
  77. return render(
  78. request,'newList.html',{
  79. 'active_menu':'news',
  80. 'sub_menu':'submenu',
  81. 'newName':newName,
  82. 'newList':newList,
  83. 'pageData':pageData,
  84. }
  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. })