模板語言 自定義函式simple_tag
阿新 • • 發佈:2018-12-24
模板語言自帶的一些處理函式:通過管道符來處理
幫助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}} 轉換成日期時間型
{{ bio|truncatewords:"30" }} 只取前30個字元
{{ my_list|first|upper }} 將第一個字母大寫
{{ name|lower }} 全轉換小寫
有時我們須要自定義函式:
a、在app中建立templatetags模組
b、建立任意 .py 檔案,如:xx.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/usr/bin/env python
#coding:utf-8
from
django
import
template
from
django.utils.safestring
import
mark_safe
register
=
template.Library()
@register
.simple_tag
def
my_simple_time(v1,v2,v3):
return
v1
+
v2
+
v3
@register
.simple_tag
def
my_input(
id
,arg):
result
=
"<input type='text' id='%s' class='%s' />"
%
(
id
,arg,)
return
mark_safe(result)
|
c、在使用自定義simple_tag的html檔案中匯入之前建立的 xx.py 檔名
1 |
{
%
load xx
%
}
|
d、使用simple_tag
1 2 |
{
%
my_simple_time
1
2
3
%
}
{
%
my_input
'id_username'
'hide'
%
}
|
e、在settings中配置當前app,不然django無法找到自定義的simple_tag
1 2 3 4 5 6 7 8 9 |
INSTALLED_APPS
=
(
'django.contrib.admin'
,
'django.contrib.auth'
,
'django.contrib.contenttypes'
,
'django.contrib.sessions'
,
'django.contrib.messages'
,
'django.contrib.staticfiles'
,
'app01'
,
)
|