سلام خیلی خوش اومدین به اولین پست من در ویرگول :)

خب برای ساخت template tag و filter های کاستوم توی جنگو شما میتونید یک اپ جدید با اسم دلخواه بسازین و اونو توی INSTALLED_APPS ها در تنظیمات جنگو اضافه کنید . من اسمشو میزارم custom_filter.
و به ستینگ جنگو اضافه اش اضافه اش میکنم :
INSTALLED_APPS = [ .... # Local apps custom_filters.apps.CostomFilterConfig, ..... ]
بعد ورادش بشین و یک پوشه به اسم templatetags بسازین و یک فایل پایتونی به اسم دلخواه بسازین که من اسمشو میزارم custom_filters.py .
اولین کاری که باید بکنین اینه :
from django import template
register = template.Library()
میایم و یک نمونه از کلاس Library میسازیم.
خب و در نهایت برای ساخت فیلتر میتونین از دکوریتور register.filter و برای ساخت template tag هم میتونین از register.simple_tag استفاده کنین :)
مثال برای ساخت filter :
@register.filter(name='three_digits_currency')
def three_digits_currency(value: int) -> str:
return '{:,}'.format(value)
توی این مثال یک فیلتر ساختم که میاد اعداد را سه تا سه تا جدا میکنه.
و همینطور میتونین برای فیلتر هاتون اسم هم بزارین که من عادت دارم هم اسم تابع باشه.
مثال برای ساخت template tag :
@register.simple_tag(name="template_tag_test")
def template_tag_test() -> str:
return 'You built a template tag !'
خب حلا که ساختیمش چطوری ازش استفاده بکنیم؟؟
میریم توی فایل html مورد نظرمون و اسم اون فایل پایتونی که ساختیم رو لوود میکنیم.
{% load custom_filters %
و میتونیم مثل فیلتر ها و تمپلیت تگ های عادی جنگو ازشون استفاده کنیم :)
{{ product_price|three_digits_currency }}
خیلی ممنونم که تا اینجا رو خوندین!
همراه من باشین تا پست بعدی ...
روحیه تونو حفظ کنید و قوی باشید.