zoukankan      html  css  js  c++  java
  • 查询个人站点的文章、分类和标签查询

    urls.py

    re_path('^(?P<username>w+)$', views.home_site, name='home_site'),

    home_site.py

    def home_site(request, username):
        """
        个人站点视图函数
        :param request:
        :return:
        """
    
        user = UserInfo.objects.filter(username=username).first()
    
        # 判断用户是否存在
        if not user:
            return render(request, 'not_found.html')
    
        # 查询当前站点
        blog = user.blog
    
        # 获取当前用户或者当前站点对应的所有文章
        # 基于对象查询
        # aritlce_list = user.article_set.all()
    
        # 基于双下划线查询
        article_list = models.Article.objects.filter(user=user)
    
        # 查询当前站点的每一个分类名称以及对应的文章数
        category_list = models.Category.objects.filter(blog=blog).values('pk').annotate(
            count=Count('article__title')).values(
            'title', 'count')
    
        # 查询当前站点的每一个标签名称以及对应的文章数
        tag_list = models.Tag.objects.filter(blog=blog).values('pk').annotate(count=Count('article')).values_list(
            'title', 'count'
        )
    
        # 查询当前站点的每一个年月名称以及对应的文章数
    
        date_list = models.Article.objects.filter(user=user).annotate(month=TruncMonth('created_time')).values(
            'month').annotate(
            count=Count('nid')).values_list(
            'month', 'count')
        # 其他复杂的没有这种方法的还是要用extras这个接口自己写
    
        return render(request, 'home_site.html')

  • 相关阅读:
    用GDB调试程序(一)
    ZOJ Problem Set
    android 去除标题
    【hadoop之翊】——基于CentOS的hadoop2.4.0伪分布安装配置
    layoutSubviews总结
    用数据说话,外贸产品选择(中篇)-google趋势分析法
    Apache介绍
    浅谈android4.0开发之GridLayout布局
    Android GridView 分页加载数据
    Android TableLayout中的使用说明
  • 原文地址:https://www.cnblogs.com/lshedward/p/10390199.html
Copyright © 2011-2022 走看看