免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2325 | 回复: 1

django自定义模板语言问题 [复制链接]

论坛徽章:
6
羊年新春福章
日期:2015-03-03 17:16:28双子座
日期:2015-03-03 17:16:56巳蛇
日期:2015-03-03 17:17:2415-16赛季CBA联赛之福建
日期:2016-03-11 09:05:00黑曼巴
日期:2016-07-07 16:58:1215-16赛季CBA联赛之吉林
日期:2016-11-14 09:23:07
发表于 2015-08-19 09:38 |显示全部楼层
本帖最后由 jcdiy0601 于 2015-08-19 10:10 编辑

我是按照步骤一步步走的,部分代码如下

app名为web

views文件
  1. from django.shortcuts import render
  2. from django.shortcuts import render_to_response
  3. from django.http.response import HttpResponse
  4. from django.core.context_processors import request
  5. from models import Asset
  6. def AssetList(request):
  7.     asset_list = Asset.objects.all()
  8.     result = render_to_response('assetlist.html',{'data':asset_list,'user':'jiachen'})
  9.     return result
复制代码
模板文件assetlist.html
  1. {% load test %}
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <link type="text/css" rel="stylesheet" href="js/common.js">
  7. <title>assetlist</title>
  8. </head>
  9. <body>

  10.         <h1>{{ user|upper }}</h1>
  11.         <table border='1'>
  12.                
  13.                 {% for item in data %}
  14.                         <tr>
  15.                                 <td>{{item.id}}</td>
  16.                                 <td>{{% a item.id %}}</td>
  17.                                 <td>{{item.name}}</td>
  18.                                 <td>{{item.create_date|date:"Y-m-d H:i:s"}}</td>
  19.                                 <td>{{item.update_date|date:"Y-m-d H:i:s"}}</td>
  20.                         </tr>
  21.                 {% endfor %}
  22.                
  23.                 {% if user %}
  24.                         <h2>真</h2>
  25.                 {% else %}
  26.                         <h2>假</h2>
  27.                 {% endif %}
  28.                
  29.                 {% ifequal user 'alex' %}
  30.                         <h2>alex</h2>
  31.                 {% else %}
  32.                         <h2>feialex</h2>
  33.                 {% endifequal %}
  34.         </table>
  35. </body>
  36. </html>
复制代码
app下建立templatetags包,并在其下面建立test.py文件,内容如下
  1. #!/usr/bin/env python
  2. #_*_ coding:utf-8 _*_
  3. from django import template
  4. from django.utils.safestring import mark_safe
  5. from django.template.base import resolve_variable, Node, TemplateSyntaxError


  6. register = template.Library()

  7. @register.simple_tag
  8. def a(v1):
  9.     result = v1*1000
  10.     return result
复制代码
报错信息如下
  1. TemplateSyntaxError at /web/assetlist/
  2. Could not parse the remainder: '% a item.id %' from '% a item.id %'
  3. Request Method:        GET
  4. Request URL:        http://127.0.0.1:8000/web/assetlist/
  5. Django Version:        1.6.5
  6. Exception Type:        TemplateSyntaxError
  7. Exception Value:       
  8. Could not parse the remainder: '% a item.id %' from '% a item.id %'
  9. Exception Location:        C:\Python27\lib\site-packages\django\template\base.py in __init__, line 577
  10. Python Executable:        C:\Python27\python.exe
  11. Python Version:        2.7.6
  12. Python Path:       
  13. ['E:\\eclipse\\oldboy08day11',
  14. 'E:\\eclipse\\oldboy08day11',
  15. 'C:\\Python27\\DLLs',
  16. 'C:\\Python27\\lib',
  17. 'C:\\Python27\\lib\\lib-tk',
  18. 'C:\\Python27',
  19. 'C:\\Python27\\lib\\site-packages',
  20. 'C:\\Windows\\system32\\python27.zip',
  21. 'C:\\Python27\\lib\\plat-win']
  22. Server time:        星期三, 19 八月 2015 09:28:51 +0800
复制代码

论坛徽章:
0
发表于 2015-08-19 15:22 |显示全部楼层
你的表达方式肯定错误:{{% a item.id %}} ,

这样的表达好像没有的,要么 {{  ...  }} 要么{%  ....   %}


如果不行,试试看{{ item.id|a }}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP