Bagaimana Cara Membuat Template Tags di Django ?

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan

atomic transaction django Python Django

Django template dilengkapi dengan beragam tags dan filter built-in yang dirancang untuk menangani kebutuhan aplikasi yang kita buat. namun adakalanya kita membutuhkan fungsionalitas tambahan yang tidak ditemukan dalam built-in django template.

Misal kita akan membuat sebuah function untuk mengubah unixtime kedalam format yang kita inginkan.

Langkah pertama, buat folder dengan nama templatetags pada project apps yang kita buat misal flights/templatetags. kemudia buat sebuah file dengan nama convert_time.py

from django import template
from datetime import datetime
import time
register = template.Library()

def print_timestamp(timestamp):
if timestamp != None:
unix_time = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
else:
unix_time = timestamp
return unix_time

register.filter(print_timestamp)

 

Langkah kedua, buka settings.py pada main project kemudian tambah builtin pada context template. tujuanya agar function convert_time dapat di import di template html

 

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
#add builtin
'builtins': [
'flights.templatetags.convert_time'
],
},

},
]

 

Langkah ketiga, import function convert_time pada template html

{% load convert_time %}

<html>
<head></head>
<body>
{{created_date_unix|print_timestamp}}
</body>
</html>