ফিল্টারগুলো খুব সহায়ক, ডজ্যাঙ্গোতে অনেক বিল্ট-ইন ফিল্টার রয়েছে। আমরা ডজ্যাঙ্গোতে নিজেদের ফিল্টারও তৈরি করতে পারি যা আমরা ডজ্যাঙ্গো প্রজেক্টের যেকোনো টেমপ্লেট ফাইলে ব্যবহার করতে পারি। ফিল্টারöbbहুত ভাবে ব্যবহার হয় যেমন HTML-এ লোয়ারকেসকে আপারকেস করা।
এই আর্টিকেলে, আমরা দেখব কিভাবে ডজ্যাঙ্গোতে একটি কাস্টম টেমপ্লেট ফিল্টার ট্যাগ তৈরি করা যায়। তো, শুরু করা যাক।
উদাহরণ
প্রথমে একটি ডজ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করুন।
আপনার অ্যাপের রুট প্রজেক্টে 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")
এখানে আমরা সিম্পলি আমাদের মেইন ফ্রন্টএন্ডকে main ভিউতে রেন্ডার করেছি।
প্রজেক্টের urls.py-তে নিচের লাইনগুলো যোগ করুন:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('example.urls')),
path('admin/', admin.site.urls),
]
এখানে আমরা আমাদের অ্যাপের urls.py মেইন urls-এ ইনক্লুড করেছি।
example বা অ্যাপের urls.py-তে নিচের কোড যোগ করুন:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.main, name="main")
]
এটি বেসিক পাথ urls সেট আপ করে এবং আমাদের main ভিউ রেন্ডার করে।
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> এলিমেন্টে, আমরা ফিল্টারটি ব্যবহার করেছি।
এই ফিল্টার লোয়ারকেসকে আপারকেসে রূপান্তর করবে।
আউটপুট
ফিল্টার ছাড়া -

ফিল্টারসহ -
