Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 10, 2014 09:38:40

Andrey Skobeldin
От: Saint-Petersburg
Зарегистрирован: 2011-01-25
Сообщения: 25
Репутация: +  1  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

Подскажите, пожалуйста, как правильно в configure.zcml описать layouts и panels? А также, как в этом же файле привязать конкретный layout к конкретному виду?

мой configure.zcml:

<configure xmlns="http://pylonshq.com/pyramid"
	       xmlns:lat="http://pylonshq.com/pyramid_layout">
    <include package="pyramid_zcml" />
    <include package="pyramid_layout" file="meta.zcml"/>
    <static
        name="static"
        path="static"
    />
    <!-- layouts -->
    <lat:layout
        name="test"
        layout=".layouts.AppLayout"
        template="templates/layouts/layout1.pt"
    />
    <!-- default view -->
    <view
        view=".views.my_view"
        renderer="templates/home.pt"
    />
    <view
        name="two"
        view=".views.my_view2"
        renderer="templates/mytemplate2.pt"
    />
</configure>

а home.pt:
<metal:block use-macro="main_template">
    <div metal:fill-slot="content">
        <h1>It is home view</h1>
        <p>Hello home.pt template</p>
        <p>Project is: ${project}</p>
    </div>
</metal:block>
при вызове вида получаю ошибку: NameError: main_template

Но если в самом виде использовать конструкцию:
request.layout_manager.use_layout('test')
вид отображается правильно.

Хотелось бы все законфигурировать декларативно в zcml файле.



Офлайн

#2 Окт. 10, 2014 10:18:53

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

Я с этим пакетом не работал, но насколько я понял для каждой вьюхи в конфе надо указывать лайоут

Я кажется понял. Ты задал name для layout поэтому надо указывать, если убрать name это будет дефолтный лайоут.

Отредактировано bismigalis (Окт. 10, 2014 10:30:21)

Офлайн

#3 Окт. 10, 2014 10:39:26

Andrey Skobeldin
От: Saint-Petersburg
Зарегистрирован: 2011-01-25
Сообщения: 25
Репутация: +  1  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

Да, надо указывать имя лайаута для вида.
Если все сделать в коде с использованием декораторов, то все прекрасно работает. Но как это же сделать в zcml - не понимаю.



Офлайн

#4 Окт. 10, 2014 10:47:12

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

Я вообще не нашел в доках pyramid_layout про zcml настройку, но по аналогии с декоратором может так:

   <view
        view=".views.my_view"
        renderer="templates/home.pt"
        layout="test"
    />

Офлайн

#5 Окт. 10, 2014 11:11:42

Andrey Skobeldin
От: Saint-Petersburg
Зарегистрирован: 2011-01-25
Сообщения: 25
Репутация: +  1  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

Я аналогично думал, сразу так и написал - не работает. Ругается что ConfigurationError: ('Unrecognized parameters:', ‘layout’);

если в конфигурации вида записать

<view
        view=".views.my_view"
        renderer="templates/home.pt"
        lat:layout="test"
    />
то пирамида запускается без ругани, но при вызове вида: NameError: main_template, причем что-то не нравится в строчке шаблона
- Expression: "main_template"
 - Filename:   ... o\python_test\pyramid7\myzcml1\myzcml1\templates\home.pt
 - Location:   (line 1: col 24)
 - Source:     <metal:block use-macro="main_template">



Офлайн

#6 Окт. 10, 2014 11:26:20

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

получается main_template не прокидывается

что-то мне кажется поддержка zcml должна быть в самом пакете и в pyramid_layout ее нет

спроси-ка лучше в рассылке

Офлайн

#7 Окт. 10, 2014 11:32:45

Andrey Skobeldin
От: Saint-Petersburg
Зарегистрирован: 2011-01-25
Сообщения: 25
Репутация: +  1  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

спасибо, попробую



Офлайн

#8 Март 16, 2015 15:24:55

AyanPrince
Зарегистрирован: 2015-03-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

pyramid_layout как использовать в configure.zcml

it is necessary to specify the name of layauta for the species.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version