Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 24, 2010 11:11:16

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

BB сохранение локальных переменных функций

Проблема следующая.
Есть объекты “разделы”, которые вкладываются друг в друга.
Задача: получить список списков всех разделов по уровням от текущего до корня.
Функция:

    def getSectionList(self, list=[]):
loclist=[]
for i in self.context.values():
if ISection.providedBy(i):
loclist.append(i)
if loclist != []: list.append(loclist)
if ISection.providedBy(self.context):
self.context.__parent__.getSectionList(list)
else: return list
Отображение в шаблоне:
<span tal:repeat="lst view/getSL">
[<span tal:repeat="sec lst">
<span tal:content="sec/__name__"></span>
</span>]
</span>
При первом вызове всё работает как надо, начиная с чистого list.
Но при обновлении странички list почему-то сохраняет предыдущее значение, в итоге происходит дубляж.
Пока что для решения этой проблемы в шаблоне использую вызов метода с заданием пустого листа в качестве начального атрибута:
<span tal:repeat="lst python:view.getSectionList([])">
[<span tal:repeat="sec lst">
<span tal:content="sec/__name__"></span>
</span>]
</span>
Вопрос: можно ли как-то переписать метод, чтобы он работал при первичном коде шаблона?



Отредактировано (Окт. 5, 2010 09:54:56)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version