templates django   0   12694
Creating custom template tags in Django

Sometimes existing templates tags are not enough for rebellious developers. They need to create custom template tags to use.

In this article, we are discussing step by step process to create and use custom template tags in Django.



Template Tags:

If all the tags are related to the app then bundle them inside that app, otherwise, you may create a new app and then add the newly created app to INSTALLED_APPS.


Steps to create custom template tags:
  • Create a new directory inside your app and name it 'templatetags'.
  • Create the __init__.py  file inside this newly-created directory.
  • Create tags file. Lets name is custom_template_tag.py.
  • Import template.
  • All the tags should be registered to template.library instance.
  • For registering tags, create a module-level variable, lets name it library. So on the top of the file, after import statements write register = template.library() .
  • Now let's create a very simple tag to get a random number in the template. For this, you need to import randint.
  • write code to generate a random number and register that function with the library. The complete code should look like below.

from django import template
from random import randint


register = template.Library()


@register.simple_tag
def random_number():
    return randint(0,999)
 


How to use a custom tag in Django templates:

Now when we have created a custom tag and registered it with the library, we can use it in templates.

Load the tag class in your template before using any template. {% load custom_template_tags %}

Now use custom tag anywhere in your HTML. {% random_number %} .

This will print a random number at the same place. you can store the output of tag in some variable can use to anywhere in the template. {% random_number as rnd %}. Now anywhere in template use {{rnd}} .



Things to take care of to make custom tags work:

  • Make sure you restarted the development server.
  • The directory name must be templatetags.
  • __init__.py  must be present in the directory.
  • App, where the templatetags directory is created, must be present in installed apps.
  • Load the tag file in the template file where the tag will be used. Loading file in parent template and then expecting it would be available to all child templates, would not work. Because zen of python.
  • If tag still not working, remove all .pyc  files.
 

If it is still not working for you, please comment.

templates django   0   12694
0 comments on 'Creating Custom Template Tags In Django'
Login to comment


Related Articles:
Using IF ELSE condition in Django template
how to use IF ELSE in Django template, Syntax of IF, ELIF and ELSE in Django, Using filters within IF condition in Django template, Multiple elif (else if) confitions in Django template...
How to set a variable in Django template
Declaring a new variable in Django template, Set the value of a variable in Django template, using custom template tag in Django, Defining variables in Django template tag...
How to display flash messages in Django templates
flash messages in Django template, one-time notifications in Django template, messages framework Django, displaying success message in Django, error message display in Django...
5 lesser used Django template tags
rarely used Django template tags, lesser-known Django template tags, 5 awesome Django template tags, Fun with Django template tags,...
DigitalOcean Referral Badge

© 2022-2023 Python Circle   Contact   Sponsor   Archive   Sitemap