Inbuilt and Custom Template Tag Filter in Django
Inbuilt Filter
- One can use in-built filters directly
- See an example of in-built filters below. data.number is passed from view and 99 is added to the passed value before displaying
index.html
<!DOCTYPE html>{% extends "mainApp/base.html" %} {% block body_block %} <div class="container"><div class="jumbotron"><h1>Welcome to a project about users</h1><h2>{{ data.number|add:"99" }}</h2></div>
</div>
{% endblock %}
Custom Filter
- To create a custom filter as per your unique needs follow this process:
- Inside app folder, create a folder named templatetags
- Inside templatetags create a blank file named __init__.py. This tells python that templatetags is a package
- Create another file named my_extras.py. This is where custom filters will be coded
- The following example will show how to remove the word "World" from a string.
index.html
<!DOCTYPE html>{% extends "mainApp/base.html" %} {% block body_block %} <div class="container"><div class="jumbotron"><h1>Welcome to a project about users</h1><h2>{{ data.text|cut:"World" }}</h2>
</div>
</div>
{% endblock %}
- And the function will be written in app > templatetags > my_extras.py
# Create Own Template Filter from django import template register = template.Library() @register.filter(name='cut') def cutout(value, arg): """ This cuts out all the values of 'arg' from the string! :param value: :param arg: :return: """ return value.replace(arg, '') # register.filter('cut', cutout)
- And that's how we do it
Comments
Post a Comment