On Tue, Mar 5, 2013 at 9:20 AM, Witold Greń <[email protected]> wrote:
> How to add prefix in generic_inlineformset_factory()? This is posible?
>

I don't understand precisely what you mean, but two of the arguments
to generic_inlineformset_factory() are 'form' and 'formset', allowing
you to specify a different class for the form objects created, and a
different base class for the formset created. This is generally true
for all formset_factory() functions.

This allows you almost unlimited flexibility in controlling how the
forms are generated, how they behave and so forth. Eg, if I wanted the
formset to take an additional argument on construction, and set that
argument on each instance the formset creates/modifies, I could do
something like this:


  class TeamBaseFormset(BaseModelFormSet):
    def __init__(self, *args, **kwargs):
      self.manager = kwargs.pop('manager')
    def save(self, commit=True, *args, **kwargs):
      instances = super(TeamBaseFormset, self).save(commit=False,
*args, **kwargs)
      for team in instances:
        team.manager = self.manager
        if commit:
          team.save()
      return instances

  TeamFormset = modelformset_factory(Team, formset=TeamBaseFormset)

  form = TeamFormset(manager=manager)

Since you have control over the formset class and the form, you can
override or change any behaviour that you want.

Cheers

Tom

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to