Custom Template Filters in Django
Django is a Python-based web framework that allows you to quickly create efficient web applications. It is also called batteries included framework because Django provides built-in features for everything including Django Admin Interface, default database – SQLlite3, etc.
What is filters in Django template language (DTL) ?
Before move to see the how to make custom filters in Django Template Language, let’s learn what is filters in Django.
- Filter is also the important feature of our template language.
- Filters are basically used to modify or filter your variables.
- You have to use this pipe ( | ) symbol to apply filter in any variables.
For example :-
So this filter will modify this variable value in lowercase
{{ variable_name | filter_name }}
How to create custom Template Filter in Django?
First of install create the django project using following command :-
django-admin startproject myproj
cd myproj
Then create the new app inside myproj
For Ubuntu
python3 manage.py startapp main
Add app name in settings.py inside INSTALLED_APPS
Add this view in your views.py
Python3
from django.shortcuts import render
def home(request):
value = "GEEKSFORGEEKS"
return render(request, "home.html" ,{ "value" :value})
|
Now lets make the templatetags directory inside our main folder
and don’t forget to create __init__.py file inside templatetag directory
and then create lower_filter.py file
Python3
from django import template
register = template.Library()
@register . filter ()
def low(value):
return value.lower()
|
Create a directory in main directory add name it as templates
Inside the templates directory create a file and name it as home.html
HTML
<!DOCTYPE html>
< html >
< head >
< title >Welcome To GFG</ title >
</ head >
< body >
{% load lower_filter %}
< h1 >{{value|low}}</ h1 >
</ body >
</ html >
|
Create a file in main directory and name it as urls.py
Python3
from django.urls import path
from .views import *
urlpatterns = [
path('', home,name = "home" ),
]
|
myproj/urls.py
Python3
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path( 'admin/' , admin.site.urls),
path('',include( "main.urls" ))
]
|
open cmd or terminal
For Ubuntu
python3 manage.py runserver
Output :-
Last Updated :
01 Feb, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...