djiango自定義標籤與過濾器

2021-08-30 15:13:10 字數 1292 閱讀 5500

from django import  template #關鍵**

register = template.library() #關鍵**

from django.db.models import count

from django.utils.safestring import mark_safe

from article.models import articlepost

import markdown

#1、返回單個數字

# 必須要有

@register.******_tag

def total_articles():

return articlepost.objects.count()

# @register.******_tag

def author_total_articles(user):

return user.article.count()

# 返回單個物件: #應重點掌握方法

@register.******_tag

user = users.objects.get(id=userid)

return user

}#2、返回html**

@register.inclusion_tag('article/list/lastest_articles.html')

def latest_articles(n=5):

lastest_articles = articlepost.objects.order_by("-created")[:n]

return

#

#3、返回物件陣列

@register.assignment_tag #後期版本已移除。

def most_commented_articles(n=3):

return articlepost.objects.annotate(total_counts = count('comments')).order_by('-total_comments')[:n]

# # #這個是必須的,定義變數。

# #4,自定義過濾器

@register.filter(name='markdown') #重新命名,方便前端呼叫,遵從使用習慣

def markdown_filter(text): #不能是markdown,與import markdown衝突

return mark_safe(markdown.markdown(text))

#

Django自定義過濾器和自定義標籤

3 在模板下建立任意名稱的.py檔案 4 在剛剛建立的.py檔案中定製過濾器 from django.template import library register library register.filter name rule 最多包含兩個引數 defrule value,before 將b...

自定義過濾器及標籤

自定義模板標籤案例 定義復用 templates存放模板的目錄 templatetags存放自定義標籤及過濾器的目錄 templatetags這個目錄名字是固定的,而裡面的模組名是自定義的 定義非常簡單,就是寫乙個函式,乙個帶有乙個或兩個引數的python引數 也可以把register.filter...

自定義過濾器,標籤,inclusion tag

三個必須 在應用下建立乙個名字 必須 叫templatetags資料夾 在該資料夾內建立 任意 名稱的py檔案 如 mytag.py 在該py檔案內 必須 先書寫以下兩句話 乙個子都不能錯 from django import template register template.library 現...