Пилоны "глобальное имя 'c' не определено"
Я установил Pylons v0.9.7 и создал проект с использованием genshi. Я попытался написать простой тестовый пример, но он не работает.
код: member.py
coding: utf-8
import logging import foo.model
from foo.lib.base import *
log = logging.getLogger(__name__)
class MemberController(BaseController):
def index(self):
c.title="title"
c.mes="message"
return render('test.html')
код: test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:py="http://genshi.edgewall.org/"
lang="ja">
<head>
<title>${c.title}</title>
</head>
<body>
<p>${c.mes}</p>
</body>
</html>
и сообщение об ошибке (в журнале)
Error - <type 'exceptions.NameError'>: global name 'c' is not defined
Пожалуйста, помогите мне найти ошибку.
1 ответ
Решение
c.title="title"
требует имени c
быть определенным (глобально или локально). Вы никогда не определяете ничего по имени c
,
Итак, определите подходящее имя c
(один, где атрибут title
может быть установлен!), прежде чем назначить что-либо c.title
!
Следующая подсказка: from pylons import tmpl_context as c
- ты этого не делал from ... import ... as
, вы знали?-)