फिल्टर्स वास्तव में बहुत उपयोगी होते हैं, Django में कई बिल्ट-इन फिल्टर्स हैं। हम Django में अपने खुद के फिल्टर्स भी बना सकते हैं जिन्हें हम किसी भी टेम्पलेट फाइल में Django प्रोजेक्ट्स में उपयोग कर सकते हैं। फिल्टर्स का उपयोग कई तरीकों से किया जाता है जैसे HTML में लोअरकेस को अपरकेस में बदलना।
इस लेख में, हम देखेंगे कि Django में एक कस्टम टेम्पलेट फिल्टर टैग कैसे बनाया जाए। तो, चलिए शुरू करते हैं।
उदाहरण
सबसे पहले, एक Django प्रोजेक्ट और एक ऐप बनाएं।
अपने ऐप के रूट प्रोजेक्ट में templates और templatetags डायरेक्टरी जोड़ें। प्रोजेक्ट संरचना इस तरह दिखेगी:

example हमारा ऐप है और tutorial हमारा प्रोजेक्ट है।
सुनिश्चित करें कि settings.py में आपका TEMPLATES वेरिएबल इस तरह दिखता है:
import os
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'example/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',
],
},
},
]
settings.py के INSTALLED_APPS वेरिएबल में "example" जोड़ें। यह सिर्फ templates फोल्डर सेट करता है।
templates फोल्डर में, एक home.html जोड़ें और इसे अभी ऐसे ही छोड़ दें।
example के views.py में, निम्नलिखित लाइनें जोड़ें:
from django.shortcuts import render
def main(request):
return render(request, "home.html")
यहां हमने बस अपने मेन फ्रंटएंड को मेन व्यू में रेंडर किया।
प्रोजेक्ट के urls.py में, निम्नलिखित लाइनें जोड़ें:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('example.urls')),
path('admin/', admin.site.urls),
]
यहां हमने मेन urls में हमारे ऐप के urls.py को शामिल किया।
example या ऐप के urls.py में, निम्नलिखित जोड़ें:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.main, name="main")
]
यह बेसिक पाथ urls सेट करता है और हमारा मेन व्यू रेंडर करता है।
templatetags फोल्डर में __init__.py बनाएं और एक फिल्टर फाइल "upperfilter.py" नाम से बनाएं। इसमें निम्नलिखित कोड जोड़ें:
from django.template import Library
register = Library()
@register.filter
def upper(value):
return value.upper()
यहां हमने एक Library इम्पोर्ट की और इसे रजिस्टर किया। हमने upper नाम से एक फंक्शन या फिल्टर बनाया और इसे डेकोरेटर का उपयोग करके रजिस्टर किया। प्रत्येक फिल्टर कुछ मान लेता है; हम परिभाषित कर सकते हैं कि यह कितने मान ले सकता है।
अपने home.html पर वापस आएं और जोड़ें:
<!DOCTYPE html>
<html>
<head>
<title>Tut</title>
</head>
<body>
{% load upperfilter %}
<h1>{{"hi friends how are you" | upper}}</h1>
</body>
</html>
यहां फ्रंटएंड पर, हमने {% %} का उपयोग करके अपना फिल्टर लोड किया, और फिर <h1> एलिमेंट में, हमने फिल्टर का उपयोग किया।
यह फिल्टर लोअरकेस को अपरकेस में बदल देगा।
आउटपुट
फिल्टर के बिना -

फिल्टर के साथ -
