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

Posted 梁少华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询个人站点的文章分类和标签查询相关的知识,希望对你有一定的参考价值。

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)

 

以上是关于查询个人站点的文章分类和标签查询的主要内容,如果未能解决你的问题,请参考以下文章

Django博客项目之表关系设计

软工大项目分工

从零开始写博客系统——查询分类和标签

从零开始写博客系统——查询分类和标签

从零开始写博客系统——查询分类和标签

Gitee + Hexo 搭建个人博客