ویرگول
ورودثبت نام
سورنا
سورنایدونه از هزاران ممد که عاشق لینوکس و برنامه های آزاده :)
سورنا
سورنا
خواندن ۱ دقیقه·۳ سال پیش

ساخت filter و template tag کاستوم در جنگو

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




خب برای ساخت 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 }}



خیلی ممنونم که تا اینجا رو خوندین!

همراه من باشین تا پست بعدی ...

روحیه تونو حفظ کنید و قوی باشید.


djangoجنگوپایتون
۰
۰
سورنا
سورنا
یدونه از هزاران ممد که عاشق لینوکس و برنامه های آزاده :)
شاید از این پست‌ها خوشتان بیاید