def get_form(self, *args, **kwargs): form = super(FinancialPlanPeriodAdmin, self).get_form(*args, **kwargs) fieldsets = [ (None, {'fields': ('year', 'quarter', 'month', 'use')}), ] plan_fields = FinancialPlanField.get_list() fields = ('period_data_%d' % id for name, id, level, has_childs in plan_fields) fieldsets.append( ( _('Данные'), {'classes': ('period-data',), 'fields': fields} ) ) self.fieldsets = fieldsets return form
def __init__(self, *args, **kwargs): super(FinancialPlanPeriodForm, self).__init__(*args, **kwargs) try: data = dict(self.instance.data) except: data = {} self.data_fields = FinancialPlanField.get_list() for name, id, level, has_childs in self.data_fields: if has_childs: widget = forms.HiddenInput() else: widget = widgets.AdminTextInputWidget() self.fields['period_data_%d' % id] = forms.IntegerField( label='%s%s' % ('---' * level + ' ', name), required=False, widget=widget, initial=data.get(id, ''))