def archive_info(request): info = {'categories': {}, 'tags': {}, 'types': {}} # 博文分类 categories = Category.objects.filter(is_delet=0) info['categories'] = [] for category in categories: count = Article.objects.filter(is_delet=0, category_id=category.id).count() info['categories'].append((category, count)) # print(info) # 博文标签 tags = Tag.objects.filter(is_delet=0) info['tags'] = [] for tag in tags: count = Article.objects.filter(is_delet=0, tag_id=tag.id).count() info['tags'].append((tag, count)) # 文件分类 types = FileType.objects.filter(is_delet=0) info['types'] = [] for type_ in types: count = File.objects.filter(is_delet=0, filetype_id=type_.id).count() info['types'].append((type_, count)) # top 10 博客,按评论数 info['top_10_arti'] = [] queryset_1 = Article.objects.filter(is_delet=0).order_by('-read') articles, range_1, pages_1 = pagebreaker(queryset_1) info['top_10_arti'] = articles # top 10 文件,按下载量 info['top_10_file'] = [] queryset_2 = File.objects.order_by('-download').filter(is_delet=0) files, range_2, pages_2 = pagebreaker(queryset_2) info['top_10_file'] = files return info
def get_recent_states(self, user): queryset_arti = Article.objects.filter( is_delet=0, author_id=user.id).order_by('-id') queryset_file = File.objects.filter(is_delet=0, user_id=user.id).order_by('-id') recent_artis, range_, page_nums = pagebreaker(queryset_arti) recent_files, range_, page_nums = pagebreaker(queryset_file) return recent_artis, recent_files
def get(self, request, article_id, page_num=0): num = int(page_num) a_id = int(article_id) article = Article.objects.get(id=a_id) if num == 0: # 文章浏览数加1,返回文章详情页 try: Article.objects.filter(id=a_id).update(read=F('read') + 1) except: pass return render(request, 'article_details.html', {'article': article}) else: discussion = Discussion.objects.filter( Q(article_id=a_id) & Q(is_delet=0)) per_page = 10 page_discussion, range_, num_pages = pagebreaker( discussion, num, per_page) return render( request, 'article_discussion.html', { 'article': article, 'page_discussion': page_discussion, 'range_': range_, 'num_pages': num_pages })
def get(self, request): act = request.GET.get('act', None) dic = {} dic['hello'] = self.get_hello() account = request.session.get('user', '') try: find_user = models.User.objects.get(account=account, is_delet=0) except: return HttpResponse('<h1>你的账户已被冻结或注销!</h1>') if act == 'addtip': # 修改添加签名 return render(request, 'tipform.html', dic) elif act == 'files': # 文件展示 page_num = int(request.GET.get('page_num', 1)) queryset = File.objects.filter( is_delet=0, user_id=find_user.id).order_by('-id') perpage = 30 dic['count'] = queryset.count() files, range_, numpages = pagebreaker(queryset, page_num, perpage) dic['page_files'], dic['range_'], dic[ 'num_pages'] = files, range_, numpages return render(request, 'userfiles.html', dic) elif act == 'articles': # 博客展示 page_num = int(request.GET.get('page_num', 1)) queryset = Article.objects.filter( is_delet=0, author_id=find_user.id).order_by('-id') perpage = 30 dic['count'] = queryset.count() articles, range_, numpages = pagebreaker(queryset, page_num, perpage) dic['articles'], dic['range_'], dic[ 'num_pages'] = articles, range_, numpages return render(request, 'userarticles.html', dic) else: arti_count = Article.objects.filter( is_delet=0, author_id=find_user.id).count() file_count = File.objects.filter(is_delet=0, user_id=find_user.id).count() dic['file_count'] = file_count dic['arti_count'] = arti_count dic['f_user'] = find_user dic['recent_articles'], dic[ 'recent_files'] = self.get_recent_states(find_user) return render(request, 'usercenter.html', dic)
def get(self, request, type_id, page_num=1): dic = {} type_id, page_num = int(type_id), int(page_num) dic['type_'] = FileType.objects.get(is_delet=0, id=type_id) queryset = File.objects.filter(is_delet=0, filetype_id=type_id) dic['count'] = queryset.count() perpage = 30 dic['page_files'], dic['range_'], dic['num_pages'] = pagebreaker( queryset, page_num, perpage) return render(request, 'file_archive.html', dic)
def get(self, request, cat_id, page_num=1): dic = {} cat_id, page_num = int(cat_id), int(page_num) dic['cat_'] = Category.objects.get(is_delet=0, id=cat_id) queryset = Article.objects.filter(is_delet=0, category_id=cat_id) dic['count'] = queryset.count() perpage = 30 dic['page_articles'], dic['range_'], dic['num_pages'] = pagebreaker( queryset, page_num, perpage) return render(request, 'category_archive.html', dic)
def get(self, request, tag_id, page_num=1): dic = {} tag_id, page_num = int(tag_id), int(page_num) dic['tag_'] = Tag.objects.get(is_delet=0, id=tag_id) queryset = Article.objects.filter(is_delet=0, tag_id=tag_id) dic['count'] = queryset.count() perpage = 30 dic['page_articles'], dic['range_'], dic['num_pages'] = pagebreaker( queryset, page_num, perpage) return render(request, 'tag_archive.html', dic)
def get(self, request, user_id): act = request.GET.get('act') dic = {} user_id = int(user_id) try: f_user = models.User.objects.get(id=user_id) except: return HttpResponse('<h1>此用户已经被冻结或者封禁!</h1>') dic['f_user'] = f_user queryset_arti = Article.objects.filter(is_delet=0, author_id=f_user.id) queryset_file = File.objects.filter(is_delet=0, user_id=f_user.id) dic['arti_count'] = queryset_arti.count() dic['file_count'] = queryset_file.count() dic['recent_articles'], range_, num_pages = pagebreaker(queryset_arti) dic['recent_files'], range_, num_pages = pagebreaker(queryset_file) if act == 'articles': page_num = int(request.GET.get('page_num', 1)) queryset = Article.objects.filter( is_delet=0, author_id=f_user.id).order_by('-id') perpage = 30 dic['count'] = queryset.count() articles, range_, numpages = pagebreaker(queryset, page_num, perpage) dic['articles'], dic['range_'], dic[ 'num_pages'] = articles, range_, numpages return render(request, 'x_userarticles.html', dic) elif act == 'files': page_num = int(request.GET.get('page_num', 1)) queryset = File.objects.filter(is_delet=0, user_id=f_user.id).order_by('-id') perpage = 30 dic['count'] = queryset.count() files, range_, numpages = pagebreaker(queryset, page_num, perpage) dic['page_files'], dic['range_'], dic[ 'num_pages'] = files, range_, numpages return render(request, 'x_userfiles.html', dic) else: return render(request, 'userdetails.html', dic)
def get(self, request): # 文件展示根据get传上来的num分页显示 depend = request.GET.get('mydepend', 'download') # print(depend) num = int(request.GET.get('num', 1)) perpage = 20 # 判定按时间或者下载量显示 if depend == 'download': queryset = File.objects.order_by('-download').filter(is_delet=0) # 返回分页后的结果 depend = 'upload_time' dependname = '按时间' page_files, range_, num_pages = pagebreaker(queryset, num, perpage) return render( request, 'filecenter.html', { 'dependname': dependname, 'page_files': page_files, 'range_': range_, 'num_pages': num_pages, 'depend': depend }) elif depend == 'upload_time': queryset = File.objects.order_by('-id').filter(is_delet=0) # 返回分页后的结果 depend = 'download' dependname = '按下载量' page_files, range_, num_pages = pagebreaker(queryset, num, perpage) return render( request, 'filecenter.html', { 'dependname': dependname, 'page_files': page_files, 'range_': range_, 'num_pages': num_pages, 'depend': depend }) else: return render(request, 'Warning.html')
def __get_recent_by_num(self, perpage=10): query_set = MsgBoard.objects.order_by('-id').filter(is_delet=0) per_page = int(perpage) num = 1 return pagebreaker(query_set, num, per_page)
def get_article_by_num(self, num): from utils.page_breaker import pagebreaker query_set = Article.objects.order_by('-id').filter(is_delet=0) num = int(num) perpage = 7 return pagebreaker(query_set, num, perpage)
def get_all(self, num=1, perpage=10): query_set = TopNotice.objects.order_by('-id').filter(is_delet=0) num_ = int(num) per_page = int(perpage) return pagebreaker(query_set, num, per_page)