GenericInlineModelAdmin's get_formset method has a non standard signature
|Reported by:||specialunderwear||Owned by:||nobody|
|Severity:||Keywords:||inline get_formset defaults kwargs|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Unlike InlineModelAdmin GenericInlineModelAdmin does not let you override any values using keyword arguments.
InlineModelAdmin's signature looks like this:
def get_formset(self, request, obj=None, **kwargs):
Any keyword arguments passed will override settings in the defaults dict which is constructed inside the function.
This mechanic makes overriding the method while still using some of the standard functionality inside get_formset very streamlined.
If the same is tried with GenericInlineModelAdmin you will have to copy paste the whole function body because this the signature of it's get_formset method:
def get_formset(self, request, obj=None):
The defaults object constructed inside the method can not be overriden by passing keyword arguments, meaning you can not reuse any of the functionality in the method when overriding it, using inheritance.
Make GenericInlineModelAdmin use the same mechanic as InlineModelAdmin so you can override the defaults object using keyword arguments.
See against current trunk.