Django用简单模板标签实现统计文章总数

一 新建简单模板标签

1 简单模板标签的结构必要满足下列要求

Django用简单模板标签实现统计文章总数_第1张图片

2 编辑mysite/article/templatetags/article_tags.py模板标签

# template包含了很多与模板有关的类和方法
from django import template
# Library是template类的一个方法
# register包含了simple_tag方法
# 它将用于自定义标签
register = template.Library()

from article.models import ArticlePost

# 表明下面的代码是自定义的simple_tag
@register.simple_tag
def total_articles():
    # 返回文章对象的查询结果
    return ArticlePost.objects.count()

@register.simple_tag
def author_total_articles(user):
    # 返回某个作者的文章总数
    return user.article.count()

二 编辑mysite/templates/article/list/article_titles.html,引入简单模板标签,实现文章总数统计

{% extends "base.html" %}
{% block title %} 文章展示 {% endblock %}

{% load article_tags %}
{% block content %}

阅读,丰富头脑,善化行为

这里已经有{% total_articles %}篇文章供你阅读

{% for article in articles %}

{{article.title}}

作者:{{article.author.username}}

概要:{{article.body|slice:'70'| linebreaks}}

{% endfor %} {% include "paginator.html" %}
{% endblock %}

三 编辑mysite/templates/article/list/author_articles.html,引入简单模板标签,实现某个作者文章总数的统计

{% extends "base.html" %}
{% load article_tags %}
{% load staticfiles %}
{% block title %}文章{% endblock %}
{% block content %}

阅读,丰富头脑,善化行为

{% for article in articles %}

{{article.title}}

作者:{{article.author.username}}

概要:{{article.body|slice:'70'|linebreaks}}

{% endfor %} {% include "paginator.html" %}
{% if userinfo.photo %} {% else %} {% endif %}

{{ user.username }}

共发表文章{% author_total_articles user %}篇

{% if userinfo %}

{{ userinfo.company }}

{{ userinfo.aboutme }}

{% else %}

这个作者太懒了,什么也没有留下。

{% endif %}
{% endblock %}

四 测试

1 统计文章总数

Django用简单模板标签实现统计文章总数_第2张图片

2 统计某作者文章总数

Django用简单模板标签实现统计文章总数_第3张图片

你可能感兴趣的:(Django)