美文网首页
在Django中自定义模板标签

在Django中自定义模板标签

作者: 盗花 | 来源:发表于2018-10-31 22:52 被阅读21次

1.在该应用(app)文件夹下面建立templatetags文件夹,在其中建立两个py文件,一是init.py,二是article_tags.py(自定义)文件。
2.在article_tags.py中键入如下代码:

from django import template
from django.db.models import Count

register = template.Library()

from article.models import ArticlePost


@register.simple_tag
def total_articles():
    return ArticlePost.objects.count()


@register.simple_tag
def author_total_articles(u):
    return u.article.count()


@register.inclusion_tag('article/list/latest_articles.html')
def latest_articles(n=5):
    l_articles = ArticlePost.objects.order_by('-created')[:n]
    return {'latest_articles': l_articles}


@register.assignment_tag
def most_commented_articles(n=3):
    return ArticlePost.objects.annotate(total_comments=Count('comments')).order_by('-total_comments')[:n]

3.article/list/latest_articles.html中代码如下:

<ul>
    {% for article in latest_articles %}
        <li>
            <a href="{{ article.get_url_path }}">{{ article.title }}</a>
        </li>
    {% endfor %}
</ul>

4.在使用自定义模板标签时,首先在模板文件中键入{% load article_tags %},接着可在适用的地方使用诸如{% total_articles %},{% latest_articles 4 %}等标签。

相关文章

  • 在Django中自定义模板标签

    1.在该应用(app)文件夹下面建立templatetags文件夹,在其中建立两个py文件,一是init.py,二...

  • 高级自定义模板标签

    有时,自定义模板标签创建的基本功能是不够的。 别担心,Django可以让您完全访问从底层构建模板标签所需的内部组件...

  • Django handy notes

    Django Handy Notes 如何关闭Django模板的自动转义 Django的模板中会对HTML标签和J...

  • u'with' expected at leas

    Django 1.5.4中模板标签bug 会报u'with' expected at least one vari...

  • 模板代码中的国际化

    Django模板中的翻译使用了两个模板标签,与Python代码中的语法略有不同。 为了让您的模板可以访问这些代码,...

  • Django模板标签

    知识点: 基本概念 常用标签 模板标签例子 模板继承与应用 注释标签 模板文件路径设置 模板标签 标签在渲染的过程...

  • Django模板标签

    这里只讨论Django的常用标签,以及模板的继承与引用。 Django的常用标签: 标签在渲染的过程中提供任意的逻...

  • 面试总结(1)

    Django自定义模板 在app应用下创建templatetags文件夹,如:users/templatetags...

  • 第五章 在线教育平台(列表详情页的开发

    列表详情页的开发 标签: django django template继承 模板继承 文件上传位置 base.ht...

  • Django的自定义包含标签(十七)

    一、自定义包含标签的介绍 1、包含标签函数django.template.Library.inclusion_ta...

网友评论

      本文标题:在Django中自定义模板标签

      本文链接:https://www.haomeiwen.com/subject/pdgztqtx.html