Найти - Пользователи
Полная версия: Ajax widget + итератор
Начало » Pyramid / Pylons / TurboGears » Ajax widget + итератор
1
dem
Делаю ajax виджет для генерации по клику необходимого кол-ва RepeatingFieldSet`s. На даннй момент выходит нечто подобное:

код javascript - работает дабы не загромаждать не буду выкладывать.

из контроллера выводится банальным
return widget.render()

class FoneWidget(CompoundWidget):
params =
member_widgets =
javascript =
template = “”“
<span id=”fone“ xmlns:py=”http://purl.org/kid/ns#“>
<div py:replace=”fones.display(repetitions = rep)“></div>
</span>
”“”
def __init__(self, rep = 0, f_params = {}, **kw):
“”“
После перезагрузки показывает что счетчик обнулился, получил параметры по умолчанию и все ок
”“”
super(FoneWidget, self).__init__(**kw)
self.up = itertools.count() # ВОТ тут он должен обнулится после перезагрузки страницы!

self.fones = RepeatingFieldSet('fones', legend = _('fones'), repetitions = 1,
fields = [TextField('user_fone_about', label=_('Phone about'), validator=UnicodeString()),
TextField('user_fone', label=_('Phone 1'), validator=UnicodeString(), attrs=dict(size=13, maxlength=13))], **f_params)

def update_params(self,d):
super(FoneWidget, self).update_params(d)
d = self.up.next()

fones = FonesWidget()

class some:
@expose
def return_form(self):
return fones.render()

Затык у меня собсно с итератором self.up. После перезагрузки страницы (и поидее повторного вызова __init__ виджета) он продолжает генерить строки формы добросовестно добавив +1

Я подозреваю, что моя функция из конроллера просто хватает старый потомок FoneWidget. Но честно говоря так и понял как это его “сбросить” на ноль.
Пробовал Сингелтон - по боку, все реализации вылазять из виджета ошибками.
dem
Всем спасибо, решил через итераторы MochiKit.
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