Синтаксис $ {'foo% (a) s bar% (b) s'% {'a': '1', 'b': '2'}} не работает в шаблоне Mako - PullRequest
0 голосов
/ 08 февраля 2010

В шаблоне Mako мне нужно сделать что-то вроде:

${'foo %(a)s bar %(b)s' % {'a': '1', 'b': '2'}}

Когда А делает это, я получаю эту ошибку:

SyntaxException: (SyntaxError) неожиданный EOF при синтаксическом анализе
(, строка 1) ("'foo% (a) s bar% (b) s'% {'a': '1', 'b': '2'") в файле…

Как мне исправить эту проблему?

Мне нужно использовать этот синтаксис в переведенном тексте:

$(_(u'foo bar %(a)s ... %(b)s) % { ... })

Ответы [ 2 ]

0 голосов
/ 08 февраля 2010

Решение:

${'foo %(a)s bar %(b)s' % dict((('a', '1'), ('b', '2'),))}
0 голосов
/ 08 февраля 2010

Обходной путь - передать объект dict другим способом. Например:

from mako.template import Template

print Template("${'foo %(a)s bar %(b)s' % data}").render(data=dict(a='Alpha',b='Beta'))
...