查询个人站点的文章、分类和标签查询

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')

 

转载于:https://www.cnblogs.com/lshedward/p/10390199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值