Какова ваша версия Pylons? render
представляется устаревшим в пользу render_jinja2
. Конечно, документация Jinja2 обозначает его как render_jinja
, а документация Pylons вообще не показывает его, но исходный код Pylons 1.0 действительно включает это и подразумевает его использование.
Или, если вы застряли с более старой версией Pylons, вы можете использовать тот факт, что настройка c.name
такая же, как настройка c.__dict__['name']
, и аналогично для всех ее атрибутов. Это позволяет легко установить все атрибуты c, если у вас есть под рукой ctx dict.
ctx = {'name': 'John'}
# Django
from django.shortcuts import render_to_response
render_to_response('hello.html', ctx)
# old Pylons?
from pylons import tmpl_context as c
from pylons.templating import render
c.__dict__.update(ctx)
render('hello.html')
# new Pylons
from pylon.templating import render_jinja2
render_jinja2('hello.html', ctx)
Кроме того, я удивлен, что старые пилоны назвали переменную в шаблоне на основе того, что вы назвали объект, который вы импортировали. Вы уверены, что c не передается в качестве аргумента render
?
Отказ от ответственности: у меня не установлены Django или Pylons, поэтому я не могу проверить ни одно из моих предложений.