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 現...