定义临时变量:

{% with i=1 %}
{{i}}
{% endwith %}

定义对临时变量操作的tag

在templatetags中创建set_val.py

内容是

from django import template
import logging
register = template.Library() class SetVarNode(template.Node): def __init__(self, var_name, var_value):
self.var_name = var_name
self.var_value = var_value def render(self, context):
try:
value = template.Variable(self.var_value).resolve(context)
except template.VariableDoesNotExist:
value = ""
context[self.var_name] = value
return u"" class VarAddOneNode(template.Node): def __init__(self, var_name):
self.var_name = var_name def render(self, context):
try:
value = template.Variable(self.var_name).resolve(context)
context[self.var_name] = str( int(value) + 1 )
except template.VariableDoesNotExist:
value = "" return u"" def set_var(parser, token):
"""
{% set <var_name> = <var_value> %}
"""
parts = token.split_contents()
logging.info('len(parts)=' + str(len(parts)))
if len(parts) == 2:
content = parts[1]
if content[len(content)-2 :len(content)] == '++':
var_name = content[:len(content) - 2]
return VarAddOneNode(var_name)
else:
return u""
elif len(parts) == 4:
return SetVarNode(parts[1], parts[3])
# raise template.TemplateSyntaxError("'set' tag must be of the form: {% set <var_name> = <var_value> %}") register.tag('set', set_var)

然后在template中引入

{% load set_val %}

前端代码示例

{% load set_val %}
<div class="layui-form-item">
<div class="layui-form-label">商品尺码</div>
<div class="layui-input-block">
{% with i=1 %}
{% set i = 2 %}
{% for size in size_list %}
<div class="layui-col-md2">
<div class="layui-row">
原名:{{ size.sizeName }}
</div>
名字:
<input style="width: 40px;display:inline;" type="text" name="color" ,
lay-verify="required"
autocomplete="off" placeholder=""
class="layui-input" value={{ size.sizeName }}>
<br>
<input type="checkbox" name="size{{ i }}" lay-skin="primary" checked="checked">
{% set i++ %}
</div>
{% endfor %}
{% endwith %}
</div>
</div>
												

django模板引擎自定义变量的更多相关文章

  1. [django]模板中自定义变量&django模板中的变量

    django自定义模板变量 context_processors.py def mysetings(request): return { 'NAME': 'maotai' } settings.py ...

  2. Django模板引擎的研究

    Django模板引擎的研究 原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not f ...

  3. Django(模板语言-自定义filter和simple_tag)

    Django(模板语言-自定义filter和simple_tag)   filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. ...

  4. Django模板引擎

    Django作为Web框架,需要一种很便利的方法动态地生成 HTML 网页,因此有了模板这个概念.模板包含所需 HTML 的部分代码以及一些特殊语法,特殊语法用于描述如何将视图传递的数据动态插入HTM ...

  5. Python - Django - 模板语言之变量

    前言: 在 Django 模板语言中变量用 {{ }},逻辑用 {% %} 在 urls.py 中添加对应关系 from django.conf.urls import url from django ...

  6. GoFrame 模板引擎对变量转义输出- XSS 漏洞

    GoFrame 模板引擎对变量转义输出- XSS 漏洞 环境: gf v1.14.4 go 1.11 官网说明 默认情况下,模板引擎对所有的变量输出并没有使用HTML转码处理,也就是说,如果开发者处理 ...

  7. 关于Django模板引擎的研究

    原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not found.1其原因是没有给视 ...

  8. Django模板之自定义过滤器/标签/组件

    自定义步骤: 1.     在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.     在app应用中创建templatet ...

  9. django 模板中通过变量替代key取字典内容

    模板中通过变量替代key取字典内容 templatetags/├── get_item.py├── __init__.py ###get_item.py # coding=utf-8 from dja ...

随机推荐

  1. springboot~jpa个性化数据操作接口

    jap是个全能仓储 jap把很多数据库访问都封装了,并且提交了默认的一切数据方法签名的约定,大家按着约定走,可以不写SQL语句,而如果比较复杂的情况,也需要写SQL,这里我们介绍一下查询和修改的实例方 ...

  2. 2.4配置的热更新「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 大家知道通常我们修改网站的配置文件比如,webconfig的时候,网站需要重启才能读取到最新的修改,所谓热更新就是 ...

  3. DSAPI 短域名服务

    有时,需要将长域名转换为短域名,或是为了减少字符量,或是为了隐藏真实网址.在DSAPI中,集成了EPS-GS的短域名接口.该功能需要联接互联网,从EPS服务器获取. 代码 DSAPI.网络.短域名服务 ...

  4. HTML学习总结&基础篇

    何为坚持?一个“勤”,一个“忍”. 年前给自己定的目标,今年一定要坚持多逛园子,多看一些大佬的帖子,然后自己也尽量能够分享自己学习的收获,让自己进步快些,但是多逛园子是做到了,写博客这个东西,今年好像 ...

  5. 程序员50题(JS版本)(七)

    程序31:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中 var test=[213,134,134,84,62,11]; const num=33; test.push(num ...

  6. Git - git branch - 查看本地仓分支列表

    索引: 目录索引 参看代码 GitHub: git.txt 一.示例: git branch 二.说明: 该命令将列出本地所有存在分支, 包括 本地独有分支与远端在本地签出的分支, 但是没有签出的远端 ...

  7. Anaconda在Windows上安装不上原因

    倒腾了一下午安装Anaconda,[所有程序]中只有一个Anaconda的目录,目录中只有一个anaconda prompt,最后发现是因为环境中原先就安装了Java环境,将之前安装的java环境卸载 ...

  8. NVIDIA-SMI系列命令总结

    1  NVIDIA-SMI介绍 nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从Wi ...

  9. Linux、CentOS7下报错-bash: TMOUT: readonly variable怎么办?

    一.Linux操作系统版本 二.背景:在项目中当我们配置好JDK环境变量.Tomcat环境变量,通过source /etc/profile使环境变量生效时,发现会报错,如图 三.解决 个人尚不知出现原 ...

  10. Centos7上搭建redis主从

    1. 节点(服务器)数量说明 按照redis官方建议:salve和master的数量按照2n+1台服务器(1台master节点,2n台slave节点) 有兴趣的可以了解下redis的master选举机 ...