Django自定义标签验证



我得到这个错误->无效过滤器:'cutter'这是我的自定义tags.py:

from django import template
from random import randint
register = template.Library()

def cutter(list, args):
return list[args]
register.filter('cutter', cutter)

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 %}

和我的目录是:

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

我试了一下:

custom_tags.py (list对于变量来说是个坏名字——因为它掩盖了内建的list函数)

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))

和这个目录结构:

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

一切正常,我得到第一个区域对象打印。

最新更新