Exemplo n.º 1
0
 def get(self, request, pk, *args, **kwargs):
     tag_id = pk
     tag = m.Tag.objects.filter(is_active=True, pk=tag_id).first()
     if not tag:
         raise Http404()
     try:
         page = int(self.request.GET.get('page', 1))
         page_size = int(self.request.GET.get('page_size', settings.LIST_INFO['page_size']))
     except:
         page = 1
         page_size = settings.LIST_INFO['page_size']
     num, start, end = self.get_index(tag, page, page_size)
     queryset = tag.tblogs.filter(is_active=True, cat__is_active=True).order_by('-add')[start:end]
     ctx = {
         'tag': tag,
         'list_desc': settings.LIST_INFO['tag'],
         'art_list': queryset,
         'page_size': page_size,
         'page': page,
         'total': num,
         'prev': page - 1 if page > 1 else None,
         'next': page + 1 if page < num else None,
         'tags': ContextUtil.random_tags(),
     }
     return render(request, 'db/taglist.html', ctx)
Exemplo n.º 2
0
 def get(self, request, *args, **kwargs):
     key = self.request.GET.get('key', None)
     if not key:
         return render(
             request, "db/search.html", {
                 'key': "无关键词",
                 'list_desc': "输入一个关键词呗, 不然我怎么知道你想找啥",
                 'art_list': [],
                 'page_size': settings.LIST_INFO['page_size'],
                 'page': 1,
                 'total': 0,
                 'prev': None,
                 'next': None,
                 'tags': ContextUtil.random_tags(),
             })
     try:
         page = int(self.request.GET.get('page', 1))
         page_size = int(
             self.request.GET.get('page_size',
                                  settings.LIST_INFO['page_size']))
     except:
         page = 1
         page_size = settings.LIST_INFO['page_size']
     cnt, num, start, end = self.get_index(key, page, page_size)
     queryset = m.Blog.objects.filter(
         Q(cat__cat__icontains=key) | Q(title__icontains=key)
         | Q(tags__tag__icontains=key)).filter(
             is_active=True,
             cat__is_active=True).distinct().order_by('-add')[start:end]
     ctx = {
         'key': key,
         'list_desc': "根据你的关键词【{}】搜索到{}篇文章".format(key, cnt),
         'art_list': queryset,
         'page_size': page_size,
         'page': page,
         'total': num,
         'prev': page - 1 if page > 1 else None,
         'next': page + 1 if page < num else None,
         'tags': ContextUtil.random_tags(),
     }
     return render(request, "db/search.html", ctx)
Exemplo n.º 3
0
    def get(self, request, pk):
        # 获取文章详情
        obj = self.get_obj(pk)
        if not obj:
            raise Http404()

        ctx = {
            'art': obj,
            'tags': ContextUtil.random_tags(),
            'cnxh': self.get_cnxh(obj),
            'others': self.get_others(obj),
            'next': self.get_next(obj),
            'prev': self.get_prev(obj),
            'liked': self.get_art_like_status(pk),
        }
        # 更新阅读次数
        obj.read += 1
        obj.save(update_fields=('read', ))
        return render(request, 'db/detail.html', ctx)