Home > Net >  Django custom tags validation
Django custom tags validation

Time:07-11

I'm getting this error -> Invalid filter: 'cutter' while this is my custom tags.py:

from django import template
from random import randint

register = template.Library()


def cutter(list, args):
    return list[args]

register.filter('cutter', cutter)

a short part of index.html:

{% extends 'main.html' %}
{% load custom_tags %}
{% load humanize %}
{% load static %}
{% block title %}main{% endblock title %}
{% block home %}active{% endblock home %}
{% block body %}

<span>{{regions_count|cutter:forloop.counter0}}</span>

{% endblock body %}

and my directory is this:

my_app/
├── ...
├── templatetags/
│   ├── __init__.py
│   └── _pycache_(folder)
|   └── custom_tags.py
└── views.py

CodePudding user response:

I tried it with following:

custom_tags.py (list is a bad name for a variable - because it shadows built in list function)

from django import template

register = template.Library()

def cutter(entry_list, args):
    return entry_list[args]

register.filter('cutter', cutter)

index.html:

{% extends 'admin/base.html' %}

{% load custom_tags %}
{% block title %}main{% endblock title %}

{% block content %}
    <span>{{ regions | cutter:0 }}</span>
{% endblock %}

views.py:

from django.shortcuts import render
from django.http import HttpResponse
from .models import Region

def index(request):
    context = {
        'regions': Region.objects.all()
    }
    return HttpResponse(render(request, 'index.html', context))

and this directory structure:

my_project
├── my_app/
|  ├── ...
|  ├── templates
|  |   └── index.html
|  ├── templatetags/
|  |   └── custom_tags.py
|  └── views.py

Everything works fine and I get the first Region object printed.

  • Related