自定义模板filter和simple_tag

本文介绍了如何在Django应用中创建自定义filter(fit_title)用于字符串截断,以及自定义simple_tag(simpleTaskStatus)以在模板中执行模型函数并传递参数。重点展示了在HTML模板中加载和使用这些自定义功能的方法。
摘要由CSDN通过智能技术生成

自定义 filter

在app目录下新建文件夹templatetags,再新建tcm_tags.py文件,内容如下

from django import template
from ..models.model_sample import *
register = template.Library()

@register.filter
def fit_title(value,length):
    if len(str(value)) > length:
        return value[0:length]+"..."
    else:
        return value

在html模板中,就可以使用fit_title这个filter,但使用前需要先Load一下{% load tcm_tags %}

这个filter的作用是,将超长的string截成指定的长度,并在后面加上...

<li><a href="{{program.get_url}}">{{ program.name | fit_title:20  }}</a></li>

自定义simple_tag

@register.simple_tag
def simpleTaskStatus(sample_id, task_id):
    # 在这里编写自定义逻辑
    # result = sample_id + task_id
    # sample = Sample.objects.get(sample_id)
    result = SampleTaskStatus.objects.get(sample__id = sample_id, task__id = task_id)
    return result

在html中使用如下:

{% simpleTaskStatus main_object.id task.id as taskStatus %}

自定义 simple_tag的主要是因为model中定义的function在html模板中调用时无法传递参数(不知道有没有别的办法)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值