Hi,

I'm working on a formset with dynamic forms. I've overloaded my form to be able 
to add new values in the select field but i cannot overload the formset 
constructor. Django raise exception : "__init__() takes exactly 1 argument (2 
given)" - How can i change the way the formset_factory build each forms to be 
able to overload each form properly for the validation ?
 
forms.py:

class BaseColumnFormset(BaseFormSet):
    my_choices = None

    def __init__(self, **kwargs):
        self.my_choices = kwargs['my_choices']
        del kwargs['my_choices']
        super(BaseColumnFormset, self).__init__(**kwargs)

    def _construct_form(self, i, **kwargs):
        kwargs["my_choices"] = self.my_choices
        return super(BaseColumnFormset, self)._construct_form(i,**kwargs)

class ColumnForm(forms.Form):
    column = forms.ChoiceField(choices = [('A', "lol")], widget=forms.Select, 
initial= 'A', label='Column')
    preview = forms.CharField(widget=forms.Textarea)

    def __init__(self, my_choices = None, *args, **kwargs):
        super(ColumnForm, self).__init__(*args, **kwargs)
        self.fields['column'].choices = my_choices

view.py:

formset_column = formset_factory(ColumnForm, formset = BaseColumnFormset)
column_formset = formset_column(request.POST)

Django raise : "__init__() takes exactly 1 argument (2 given)"

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/-yYKMVO187QJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to