get_form()parameter is passed objwhen called during change_view. Just find that if necessary, return the new form / settings parameters.
For instance:
class MyModelAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
if obj is None:
kwargs['fields'] = ['url']
return super(MyModelAdmin, self).get_form(request, obj, **kwargs)
Causes the form to display only the "url" field when adding and everything else otherwise.
source
share