首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django自定义标记验证

Django自定义标记验证
EN

Stack Overflow用户
提问于 2022-07-11 07:39:46
回答 1查看 43关注 0票数 0

我得到了一个错误->无效过滤器:‘裁剪’,而这是我的自定义tags.py:

代码语言:javascript
复制
from django import template
from random import randint

register = template.Library()


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

register.filter('cutter', cutter)

Index.html的一小部分:

代码语言:javascript
复制
{% 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 %}

我的目录是:

代码语言:javascript
复制
my_app/
├── ...
├── templatetags/
│   ├── __init__.py
│   └── _pycache_(folder)
|   └── custom_tags.py
└── views.py
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-11 10:59:51

我尝试了以下几点:

custom_tags.py (list是变量的坏名称-因为它隐藏在list函数中)

代码语言:javascript
复制
from django import template

register = template.Library()

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

register.filter('cutter', cutter)

index.html:

代码语言:javascript
复制
{% extends 'admin/base.html' %}

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

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

views.py:

代码语言:javascript
复制
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))

这个目录结构:

代码语言:javascript
复制
my_project
├── my_app/
|  ├── ...
|  ├── templates
|  |   └── index.html
|  ├── templatetags/
|  |   └── custom_tags.py
|  └── views.py

一切正常,我打印了第一个Region对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72935165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档