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

不言
發布: 2019-04-01 11:03:06
轉載
1944 人瀏覽過

這篇文章帶給大家的內容是關於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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!