Menambahkan Django Custom Template Filter Tanpa App

Bingung juga mau kasih judul, intinya sih aplikasi django saya ini tidak mengikuti pakem django-admin startproject maupun startapp, tapi hanya berupa 1 buah file tunggal, app.py. Kalau menggunakan startapp, untuk menambahkan custom filter cukup dengan membuat direktori templatetags yang isinya __init__.py dan module yang berisi dari custom filter kita. Nah, bagaimana kalau tanpa startapp?

Setelah baca-baca dokumentasi, untuk membuat custom filter sebenarnya sangat mudah, cukup menambahkan dict berikut di settings.py bagian TEMPLATE:

TEMPLATES=[
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'libraries': {
            'app_filters': 'app_filters',
            },
        }
     }
 ],

Setelah itu buat file app_filters.py sejajar dengan app.py, kemudian tambahkan fungsi custom filter, seperti misalnya dalam contoh berikut:

from django import template

register = template.Library()

@register.filter
def removedash(value):
 return value.replace('-', ' ')

Kemudian panggil di html dengan terlebih dahulu memanggil file app_filters

{% load app_filters %}

{{ d.title|removedash }}

Selesai…

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s