Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 23, 2010 13:59:42

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

банально <span tal:content=“python: context.meta_type”></span>
тоже вызывает ForbiddenAttribute: ('meta_type', <zope.site.folder.Folder object at 0x0331B470>)

аналогично в примере из книжки:
ForbiddenAttribute: ('meta_type', <tc.collector.ticketcollector.Collector object at 0x032BCB70>)



Отредактировано (Сен. 23, 2010 14:16:55)

Офлайн

#2 Сен. 23, 2010 14:26:28

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

Уберите наследование ISection от IContainer. BTreeContainer уже реализует контейнер



Офлайн

#3 Сен. 23, 2010 14:46:01

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

убрал, теперь:
ForbiddenAttribute: ('get', <intershop.content.section.section.Section object at 0x0333E970>)



Офлайн

#4 Сен. 23, 2010 15:01:07

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

очистил полностью шаблон отображения

оставил только

<html>
<span tal:content="context/name"/>
</html>
Вот последняя часть лога ошибки:
File 'c:\\intershop\\eggs\\zope.tales-3.5.1-py2.6.egg\\zope\\tales\\tales.py', line 704 in evaluateText
text = self.evaluate(expr)
Line 3
In expression: <PathExpr standard:u'context/name'>
- Names:
{'args': (),
'context': <intershop.content.section.section.Section object at 0x03BAC230>,
'default': <object object at 0x018C1738>,
'loop': {},
'nothing': None,
'options': {},
'repeat': {},
'request': <zope.publisher.browser.BrowserRequest instance URL=http://127.0.0.1:8080/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B/test/@@index>,
'template': <zope.browserpage.viewpagetemplatefile.ViewPageTemplateFile object at 0x03206950>,
'view': <zope.browserpage.metaconfigure.SectionView object at 0x05A23C10>,
'views': <zope.browserpage.viewpagetemplatefile.ViewMapper object at 0x05A23DF0>}
File 'c:\\intershop\\eggs\\zope.tales-3.5.1-py2.6.egg\\zope\\tales\\tales.py', line 696 in evaluate
return expression(self)
File 'c:\\intershop\\eggs\\zope.tales-3.5.1-py2.6.egg\\zope\\tales\\expressions.py', line 217 in __call__
return self._eval(econtext)
File 'c:\\intershop\\eggs\\zope.tales-3.5.1-py2.6.egg\\zope\\tales\\expressions.py', line 194 in _eval
ob = self._subexprs[-1](econtext)
File 'c:\\intershop\\eggs\\zope.tales-3.5.1-py2.6.egg\\zope\\tales\\expressions.py', line 124 in _eval
ob = self._traverser(ob, element, econtext)
File 'c:\\intershop\\eggs\\zope.pagetemplate-3.5.2-py2.6.egg\\zope\\pagetemplate\\engine.py', line 66 in __call__
request=request)
(<intershop.content.section.section.Section object at 0x03BAC230>, 'name')
File 'c:\\intershop\\eggs\\zope.traversing-3.13-py2.6.egg\\zope\\traversing\\adapters.py', line 136 in traversePathElement
return traversable.traverse(nm, further_path)
File 'c:\\intershop\\eggs\\zope.container-3.11.1-py2.6-win32.egg\\zope\\container\\traversal.py', line 102 in traverse
v = container.get(name, _marker)
ForbiddenAttribute: ('get', <intershop.content.section.section.Section object at 0x03BAC230>)



Офлайн

#5 Сен. 23, 2010 15:04:24

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

может, проблема в том, что в реализации наследование от BTreeContainer, а надо к примеру от Folder?



Офлайн

#6 Сен. 23, 2010 15:11:39

Sleepwalker
От:
Зарегистрирован: 2008-07-18
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

Не уверен что поможет но:

1. Когда описываем интерфейс контейнера желательно разделять схему от основного интерфейса:

from zope.app.container.constraints import contains

class ISectionSchema(Interface):

name = TextLine(
title=u"",
default=u"",
required=True)

image = Bytes(
title=u"",
default=None,
required=False)

class ISection(ISectionSchema, IContainer):
"Comment"
2. В zcml пишем следующим образом:

<class class=".section.Section">
<require
interface=".interfaces.ISection"
permission="zope.Public"
/>
<require
set_schema=".interfaces.ISectionSchema"
permission="zope.Public"
/>
<require
interface="zope.container.interfaces.IReadContainer"
permission="zope.Public"
/>
</class>
Остальное оставляем как есть. Пока идей других нет… пробуйте так.



Офлайн

#7 Сен. 23, 2010 15:29:17

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

Sleepwalker
Не уверен что поможет но:

1. Когда описываем интерфейс контейнера желательно разделять схему от основного интерфейса:

from zope.app.container.constraints import contains

class ISectionSchema(Interface):

name = TextLine(
title=u"",
default=u"",
required=True)

image = Bytes(
title=u"",
default=None,
required=False)

class ISection(ISectionSchema, IContainer):
"Comment"
2. В zcml пишем следующим образом:

<class class=".section.Section">
<require
interface=".interfaces.ISection"
permission="zope.Public"
/>
<require
set_schema=".interfaces.ISectionSchema"
permission="zope.Public"
/>
<require
interface="zope.container.interfaces.IReadContainer"
permission="zope.Public"
/>
</class>
Остальное оставляем как есть. Пока идей других нет… пробуйте так.
К сожалению, не хочет запускаться.
ConfigurationConflictError: Conflicting configuration actions
For: ('protectedName', <class ‘intershop.content.section.section.Section’>, ‘__contains__’)



Офлайн

#8 Сен. 23, 2010 15:32:22

Sleepwalker
От:
Зарегистрирован: 2008-07-18
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

Ну да …

class ISection(ISectionSchema, IContainer)

замени на

class ISection(ISectionSchema)

BtreeContainer уже имплементит интерфейс IContainer



Офлайн

#9 Сен. 23, 2010 15:34:57

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

LightOfMooN
ConfigurationConflictError: Conflicting configuration actions
В таком случае два раза права устанавливаются. Один раз для объекта BTreeContainer, второй раз для Section, поэтому возникает конфликт, так как BB не понимает, какую конфигурацию брать.



Офлайн

#10 Сен. 23, 2010 15:35:13

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB TAL.. Что сделать, чтоб хоть что-то работало?

оно запустилось =)
но ошибка осталась:
ForbiddenAttribute: ('objectValues', <intershop.content.section.section.Section object at 0x033396F0>)
=(



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version