標籤:自訂 django html
自訂一個html標籤參考:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ 第一步:在 app下建立templatetags包,也就是本案例的bbs下建立templatetags包如下: bbs/templatetags/__init__.py bbs/templatetags/poll_extras.py 第二步:編寫poll_extras.py檔案,編寫成你需要的標籤,下面編寫的是,把資料轉為大寫字母 from django import template ###必須應用template模組 register = template.Library() @register.filter def test_tag(data): print ‘tag::: ‘ ,data return data.upper() 第三步:在引用的html檔案中使用 {% load poll_extras %} 第四步:在html中應用這個標籤,如下: 把作者名稱改為大寫,它不能解析html內容 <a>{{ article.author.name|test_tag }}</a> ## 這中調用方式用於@register.filter裝飾器, 如果是@register.simple_tag這種裝飾器就需要用下面的調用方法,且這中裝飾器可以解析html格式 <a>{% test_tag2 article.author.name %}</a>
from django.utils.safestring import mark_safefrom django import template ###必須應用template模組register = template.Library()@register.filterdef test_tag(data): print ‘tag::: ‘ ,data return data.upper()@register.simple_tagdef test_tag2(data): print ‘tag::: ‘ ,data #return data.upper() a = ‘<h1>%s</h1>‘ % data ##@register.simple_tag可以解析html返回,, return mark_safe(a) ##在新版的django中,如果需要用@register.simple_tag解析html文本,需要額外添加 : from django.utils.safestring import mark_safe 這個make_safe模組才可以 如果是@register.simple_tag這種裝飾器就需要用下面的調用方法,且這中裝飾器可以解析html格式 <a>{% test_tag2 article.author.name %}</a>
本文出自 “奮鬥吧” 部落格,請務必保留此出處http://lvnian.blog.51cto.com/7155281/1858878
Django 自訂html 標籤