首頁  >  文章  >  後端開發  >  Django自訂模板標籤和過濾器(程式碼範例)

Django自訂模板標籤和過濾器(程式碼範例)

不言
不言轉載
2019-04-01 11:03:061933瀏覽

這篇文章帶給大家的內容是關於Django自訂模板標籤和過濾器(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1、建立模板庫

在某個APP所在目錄下新建套件templatetags,然後在其中建立儲存標籤或過濾器的的模組,名稱隨意,例如myfilters.py。

在這個模組中寫相關程式碼。

注意:templatetags所在APP應該在設定檔中進行配置。

2.定義過濾器

過濾器是一個函數,第一個參數是被處理的值,之後,可以有任一個參數,作為一個過濾器參數。

from django import template
from django.template.defaultfilters import stringfilter

register=template.Library()

# 去除指定字符串
@register.filter(name='mycut')
@stringfilter
def mycut(value,arg):
    return value.replace(arg,'')

# 注册过滤器
# register.filter(name='mycut',filter_func=mycut)

3.定義標籤

simple_tag

處理數據,並傳回特定數據

@register.simple_tag(name='posts_count')
def total_posts():
    return Post.published.count()

inclusion_tag

處理數據,並傳回一個渲染的模板

@register.inclusion_tag('blog/post/latest.html')
def show_latest_posts(count=5):
    latest_posts=Post.published.order_by('-publish')[:5]
    return {
        'latest_posts':latest_posts,
    }

blog/post/latest.html內容如下:

<strong>最新文章</strong>
<ul>
{% for post in latest_posts %}
<li>
    <a href="{% url &#39;blog:post_detail&#39; post_id=post.id %}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>

4.使用

##使用自訂的標籤或篩選器之前,在範本檔案中,需要使用

{% load 模組名稱%} 載入自訂的標籤和篩選器。

之後,就可以向使用Django自帶的標籤一樣使用了。

注意:即使目前模板繼承的基底模板中已經load了自訂標籤或過濾器所在的模組,在目前模板中,仍然需要再次load。

【相關推薦:

python影片教學

以上是Django自訂模板標籤和過濾器(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除