Exemple #1
0
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
Exemple #2
0
 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
Exemple #3
0
 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
             })
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #6
0
 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)
Exemple #7
0
 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)
Exemple #8
0
 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)
Exemple #9
0
 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')
Exemple #10
0
 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)
Exemple #11
0
 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)
Exemple #12
0
 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)