2016-08-10 4 views
1

Я пытаюсь использовать PyPugJs с пирамидой. Внутри моей __init.py, у меня есть этотPyPugJs с Pyramid - Basic

config.include('pypugjs.ext.pyramid') 

Внутри views.py,

@view_defaults(renderer='json') 
class St2Views: 
    """docstring for St2Views""" 
    def __init__(self, request): 
     super(St2Views, self).__init__() 
     self.request = request 

    @view_config(route_name='hello') 
    def hello(self): 
     session = self.request.session 
     return Response('<body><h1>Hello</h1></body>') 

    @view_config(route_name='home') 
    def home(self): 
     return { 
      'a': 'b' 
     } 

    @view_config(route_name='index', renderer='index.pug') 
    def index(self): 
     return {} 

И я получаю эту ошибку при попытке перейти к index маршруту

Traceback (most recent call last): 
    File "z:\eels\dev\st2\env\lib\site-packages\pyramid_mako\__init__.py", line 148, in __call__ 
    result = template.render_unicode(**system) 
    File "z:\eels\dev\st2\env\lib\site-packages\mako\template.py", line 454, in render_unicode 
    as_unicode=True) 
    File "z:\eels\dev\st2\env\lib\site-packages\mako\runtime.py", line 829, in _render 
    **_kwargs_for_callable(callable_, data)) 
    File "z:\eels\dev\st2\env\lib\site-packages\mako\runtime.py", line 864, in _render_context 
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) 
    File "z:\eels\dev\st2\env\lib\site-packages\mako\runtime.py", line 890, in _exec_template 
    callable_(context, *args, **kwargs) 
    File "z:\eels\dev\st2\st2\index.pug", line 6, in render_body 
    body 
    File "z:\eels\dev\st2\env\lib\site-packages\markupsafe\_native.py", line 22, in escape 
    return Markup(text_type(s) 
    File "z:\eels\dev\st2\env\lib\site-packages\mako\runtime.py", line 226, in __str__ 
    raise NameError("Undefined") 
NameError: Undefined 

Кажется, что по умолчанию mako renderer, а не мопс. Пробовал использовать PyJade, а также с расширением .jade, но с тем же результатом. Что я делаю неправильно?

+0

Определяется ли 'route_name = 'index'' в другом месте вашего проекта с использованием другого или рендеринга по умолчанию? –

+0

это присутствует в моей '__init __. Py':' config.add_route ('index', '/') '. И у меня есть рендерер по умолчанию '@view_defaults (renderer = 'json')'. Обновите вопрос с помощью всего класса представления. – Eels

+0

попробовал его после удаления рендеринга по умолчанию, но все же такая же ошибка – Eels

ответ

1

Проблема была связана с шаблоном мопса/нефрита, в котором использовалась неопределенная (исключенная) переменная.