Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 8, 2007 21:33:32

dem
От:
Зарегистрирован: 2006-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Ajax widget + итератор

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



Отредактировано (Июнь 9, 2007 11:03:06)

Офлайн

#2 Июнь 9, 2007 17:22:04

dem
От:
Зарегистрирован: 2006-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Ajax widget + итератор

Всем спасибо, решил через итераторы MochiKit.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version