You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.0 KiB
101 lines
3.0 KiB
from django.shortcuts import render
|
|
from .models import MyNew
|
|
from django.core.paginator import Paginator
|
|
from django.shortcuts import get_object_or_404
|
|
from pyquery import PyQuery as pq
|
|
|
|
|
|
def news(request, newName):
|
|
# 解析请求的新闻类型
|
|
submenu = newName
|
|
if newName == 'company':
|
|
newName = '企业要闻'
|
|
elif newName == 'industry':
|
|
newName = '行业新闻'
|
|
else:
|
|
newName = '通知公告'
|
|
# 从数据库获取、过滤和排序数据
|
|
newList = MyNew.objects.all().filter(
|
|
newType=newName).order_by('-publishDate')
|
|
for mynew in newList:
|
|
html = pq(mynew.description) # 使用pq方法解析html内容
|
|
mynew.mytxt = pq(html)('p').text() # 截取html段落文字
|
|
# 分页
|
|
p = Paginator(newList, 5)
|
|
if p.num_pages <= 1:
|
|
pageData = ''
|
|
else:
|
|
page = int(request.GET.get('page', 1))
|
|
newList = p.page(page)
|
|
left = []
|
|
right = []
|
|
left_has_more = False
|
|
right_has_more = False
|
|
first = False
|
|
last = False
|
|
total_pages = p.num_pages
|
|
page_range = p.page_range
|
|
if page == 1:
|
|
right = page_range[page:page + 2]
|
|
print(total_pages)
|
|
if right[-1] < total_pages - 1:
|
|
right_has_more = True
|
|
if right[-1] < total_pages:
|
|
last = True
|
|
elif page == total_pages:
|
|
left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
|
|
if left[0] > 2:
|
|
left_has_more = True
|
|
if left[0] > 1:
|
|
first = True
|
|
else:
|
|
left = page_range[(page - 3) if (page - 3) > 0 else 0:page - 1]
|
|
right = page_range[page:page + 2]
|
|
if left[0] > 2:
|
|
left_has_more = True
|
|
if left[0] > 1:
|
|
first = True
|
|
if right[-1] < total_pages - 1:
|
|
right_has_more = True
|
|
if right[-1] < total_pages:
|
|
last = True
|
|
pageData = {
|
|
'left': left,
|
|
'right': right,
|
|
'left_has_more': left_has_more,
|
|
'right_has_more': right_has_more,
|
|
'first': first,
|
|
'last': last,
|
|
'total_pages': total_pages,
|
|
'page': page,
|
|
}
|
|
return render(
|
|
request, 'newList.html', {
|
|
'active_menu': 'news',
|
|
'sub_menu': submenu,
|
|
'newName': newName,
|
|
'newList': newList,
|
|
'pageData': pageData,
|
|
})
|
|
|
|
|
|
def newDetail(request, id):
|
|
mynew = get_object_or_404(MyNew, id=id)
|
|
mynew.views += 1
|
|
mynew.save()
|
|
return render(request, 'newDetail.html', {
|
|
'active_menu': 'news',
|
|
'mynew': mynew,
|
|
})
|
|
|
|
|
|
def search(request):
|
|
keyword = request.GET.get('keyword')
|
|
newList = MyNew.objects.filter(title__icontains=keyword)
|
|
newName = "关于 " + "\"" + keyword + "\"" + " 的搜索结果"
|
|
return render(request, 'searchList.html', {
|
|
'active_menu': 'news',
|
|
'newName': newName,
|
|
'newList': newList,
|
|
})
|