Python 键错误';%trans";{}";%';在自定义标记中
我创建了一个简单的标记,使添加工具提示更加简单。我已经用Python 键错误';%trans";{}";%';在自定义标记中,python,django,django-templates,django-template-filters,Python,Django,Django Templates,Django Template Filters,我创建了一个简单的标记,使添加工具提示更加简单。我已经用和html\u tags.py创建了一个templatetags文件夹 html_tags.py from django import template from django.utils.html import format_html register = template.Library() @register.simple_tag def tooltip(text): return format_html('<a h
和html\u tags.py
创建了一个templatetags文件夹
html_tags.py
from django import template
from django.utils.html import format_html
register = template.Library()
@register.simple_tag
def tooltip(text):
return format_html('<a href="#" data-toggle="tooltip" title="{% trans "{}" %}"><img src="{% static "icons/tooltip.png" %}"></img></a>'.format(text))
它提出:
格式字符串中遇到单个“}”
你知道问题出在哪里吗
这是因为format\u html
仅检查并返回您的html字符串是否有效李>
例如,
>>> format_html('<a href="">dada</a>')
'<a href="">dada</a>'
>>>
>>> format_html('{% trans "foobar" %}')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/path/to/lib/python3.5/site-packages/django/utils/html.py", line 106, in format_html
return mark_safe(format_string.format(*args_safe, **kwargs_safe))
KeyError: '% trans "foobar" %'
>>>
这是因为format\u html
仅检查并返回您的html字符串是否有效李>
例如,
>>> format_html('<a href="">dada</a>')
'<a href="">dada</a>'
>>>
>>> format_html('{% trans "foobar" %}')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/path/to/lib/python3.5/site-packages/django/utils/html.py", line 106, in format_html
return mark_safe(format_string.format(*args_safe, **kwargs_safe))
KeyError: '% trans "foobar" %'
>>>
这个答案并不能解决问题。format_html(ugettext_lazy('{%if get==True%}'))键错误:u'%if get==True%'此答案无法解决问题。format_html(ugettext_lazy('{%if get==True%}'))键错误:u'%if get==True%'
from django.utils.translation import ugettext_lazy as _
@register.simple_tag
def tooltip(text):
return format_html('<a href="#" data-toggle="tooltip" title="%(text)s">'
'<img src="/static/icons/tooltip.png"></img></a>' % {'text': _(text)})