﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
10305	Add a form instantiation hook for contrib.admin add/change views	tangc	nobody	"`add_view` and `change_view` have the following code:

{{{#!python
ModelForm = self.get_form(request)
...
form = ModelForm(request.POST, request.FILES)
}}}

or:
{{{#!python
 form = ModelForm(initial=initial)
}}}

or:
{{{#!python
 form = ModelForm(request.POST, request.FILES, instance=obj)
}}}

I would propose:
{{{#!python
if isinstance(ModelForm, ModelFormMetaclass):
    form = ModelForm(request.POST, request.FILES)
else
    form = ModelForm
}}}

This way gives the flexibility to override the function `get_form(self, request, obj=None, **kwargs)`, which could return a `modelform_factory(self.model, **defaults)` or an instance of a model form.
"	New feature	new	contrib.admin	dev	Normal		add_view, change_view, ModelForm		Accepted	0	0	0	0	0	0
