Найти - Пользователи
Полная версия: BB TAL.. Что сделать, чтоб хоть что-то работало?
Начало » Zope/Plone/Bluebream » BB TAL.. Что сделать, чтоб хоть что-то работало?
1 2 3 4
LightOfMooN
Я менял пермишны непосредственно в кодах Container, Folder, BTreeContainer на Zope.Public. Ошибка всеравно остаётся. Да и непонятно, причём тут пермишны, если ошибка есть даже у менеджера, у которого полные права.
Sleepwalker
1. Никак не пойму откуда взялся метод objectValues. Смотрел в исходниках компонентов - его там нет.

2. У вашего контейнера нет никаких обьектов внутри и все что вы от него можете получить - это значения полей из вашей схемы (name, image).

Попробуйте написать:
<span tal:content="context/name" />
Должно работать…
LightOfMooN
context/name работает.
Сам искал в исходниках и не нашёл. Но ведь в оффициальной документации в руководстве есть примеры!
Даже если не брать в расчёт objectValues, то хотя бы контент-тип то можно получить
context/meta_type…
Да и обычно если атрибута нет вообще, появляется AttributeError, а тут ForbiddenAttribute (запрещённый атрибут), что действительно наводит на мысль о проблемах с разрешениями.
LightOfMooN
в классе вида пишу метод
def getMetaType(self):
return self.context.meta_type
вызываю в шаблоне
<span tal:content=“view/getMetaType”/>
и та же самая ошибка
Sleepwalker
AttributeError не выдается т.к. zope сначала проверяет права доступа на аттрибут (не зная существует он или нет) а потом уже пробует к нему достучатся. Есле есть права и нет такого атрибута - вот тогда AttributeError.
Sleepwalker
Атрибута meta_type у BTreeContainer нет и у вашего обьекта тоже, поэтому и ошибка.
regall
Ну попробуйте в виде сделать
from zope.security.proxy import removeSecurityProxy
....
self.context = removeSecurityProxy(context)
Будет ли ошибка выскакивать.
LightOfMooN
Sleepwalker
Атрибута meta_type у BTreeContainer нет и у вашего обьекта тоже, поэтому и ошибка.
Точно, вы абсолютно правы. Только что проверил.
т.е. тут 2 варианта:
1) либо атрибут (к примеру, meta_type) существует, но права не выданы
2) либо атрибута вообще не существует
regall
Раскопал-таки.
meta_type - это атрибут для одного из способов поиска объектов в Zope2, а в Zope3 его нет, так как незачем. Нашел тут.
LightOfMooN
    def getMetaType(self):
self.context = removeSecurityProxy(context)
return self.context.meta_type
AttributeError: ‘Section’ object has no attribute ‘meta_type’
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB