加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django custom assignment_tag没有被执行

发布时间:2020-12-20 11:31:46 所属栏目:Python 来源:网络整理
导读:我尝试在Django 1.6中创建自己的赋值模板标签(编辑:我也尝试了1.5.5 w / o成功)但我无法做任何事情. 在templatetags / getattribute.py我有: from django import templateimport loggingregister = template.Library()logger = logging.getLogger('wwwcid.
我尝试在Django 1.6中创建自己的赋值模板标签(编辑:我也尝试了1.5.5 w / o成功)但我无法做任何事情.

在templatetags / getattribute.py我有:

from django import template
import logging

register = template.Library()
logger = logging.getLogger('wwwcid.website.debug_console')

#@register.assignment_tag
def mytag(context,context_variable):
    raise template.TemplateSyntaxError("buuuuuuuuuuuuuuus")
    logger.debug("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
    print "teeeeeeeeeeeeeeeeeeeest"
    return 'tpppppppppppppppppppppeee'
register.assignment_tag(mytag,takes_context=True)

在我的模板profile.html中,我有:

{% extends "website/base.html" %}
{% load getattribute %}
{% mytag "user.email" as vari %}
{{ vari }}
{% block content %}
<p> Rest of the page. </p>
{% endblock content %}

但是这个标签不起作用.没有错误(即使我自己提出),没有记录输出,没有打印,没有返回,没有.

即使我注册了带有take_context = True的标签,也就是说@ register.assignment_tag它不起作用.我在这做错了什么?谢谢你的帮助!

解决方法

好吧,我应该粘贴代码,因为我真的在我的应用程序中有它.我编辑了上面的profile.html部分以反映实际情况.问题是标签和变量仅在{%block foo%}和{%endblock foo%}之间执行.因此,使用以下profile.html模板:

{% extends "website/base.html" %}
{% load getattribute %}
{% block content %}
{% mytag "user.email" as vari %}
{{ vari }}
<p> Rest of the page. </p>
{% endblock content %}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读