[Django]-Custom tag not loaded in template

24πŸ‘

For Django 2.2 up to 3, you have to load staticfiles in html template first before use static keyword

{% load staticfiles %}
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">

For other versions use static

{% load static %}
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">

Also you have to check that you defined STATIC_URL in setting.py

At last, make sure the static files exist in the defined folder

πŸ‘€vipmaa

17πŸ‘

The error is in this line: (% load pygmentize %}, an invalid tag.
Change it to {% load pygmentize %}

πŸ‘€Erick M

11πŸ‘

{% load static %}
<img src="{% static "my_app/example.jpg" %}" alt="My image">

in your templates, use the static template tag to build the URL for the given relative path using the configured STATICFILES_STORAGE.

10πŸ‘

did you try this

{% load games_tags %} 

at the top instead of pygmentize?

πŸ‘€losee

7πŸ‘

{% load static %}

Please add this template tag on top of the HTML or base HTML file

πŸ‘€Thomas John

5πŸ‘

Encountered this same issue but I just added {% load static %} from my extends template and it worked. So in your case if you’re trying to load gameprofile.html from a base template you just need to add it like this:

{% extends 'some_base.html' %}
{% block content %}
{% load pygmentize %}
πŸ‘€blufang

2πŸ‘

I had the same problem, here’s how I solved it. Following the first section of this very excellent Django tutorial, I did the following:

  1. Create a new Django app by executing: python manage.py startapp new_app
  2. Edit the settings.py file, adding the following to the list of INSTALLED_APPS: 'new_app',
  3. Add a new module to the new_app package named new_app_tags.
  4. In a Django HTML template, add the following to the top of the file, but after {% extends 'base_template_name.html' %}: {% load new_app_tags %}
  5. In the new_app_tags module file, create a custom template tag (see below).
  6. In the same Django HTML template, from step 4 above, use your shiney new custom tag like so: {% multiply_by_two | "5.0" %}
  7. Celebrate!

Example from step 5 above:

from django import template

register = template.Library()

@register.simple_tag
def multiply_by_two(value):
    return float(value) * 2.0
πŸ‘€MikeyE

0πŸ‘

The app that contains the custom tags must be in INSTALLED_APPS. So Are you sure that your directory is in INSTALLED_APPS ?

From the documentation:

The app that contains the custom tags must be in INSTALLED_APPS in order for the {% load %} tag to work. This is a security feature: It allows you to host Python code for many template libraries on a single host machine without enabling access to all of them for every Django installation.

πŸ‘€Ahmed Hosny

0πŸ‘

In gameprofile.html please change the tag {% endblock content %} to {% endblock %} then it works otherwise django will not load the endblock and give error.

0πŸ‘

Sometimes all you need is to just:

  1. Restart the django server by pressing Ctrl + C

or

  1. Hard reload the page by pressing Shift + Ctrl + R
πŸ‘€Mr Coolman

0πŸ‘

Remember {% your code %} is different from { % your code % } check the spaces before the bracket the brackets

-2πŸ‘

You need to change:

{% endblock content %}

to

{% endblock %}
πŸ‘€steve

Leave a comment