Consider this
@admin.register(Personal, site=admin_site)
class PersonalAdmin(admin.ModelAdmin):
form = ChangePersonalForm
add_form = AddPersonalForm
def get_form(self, request, obj=None, **kwargs):
if not obj:
self.form = self.add_form
return super(PersonalAdmin, self).get_form(request, obj, **kwargs)
The first time you try creating or changing an object, it will work fine.
But, after you create the object, every time you try to change an object, you will get the add_form instead of the form
I fixed that by adding an else block
@admin.register(Personal, site=admin_site)
class PersonalAdmin(admin.ModelAdmin):
change_form = ChangePersonalForm
add_form = AddPersonalForm
def get_form(self, request, obj=None, **kwargs):
if not obj:
self.form = self.add_form
else:
self.form = self.change_form
return super(PersonalAdmin, self).get_form(request, obj, **kwargs)
As if there was some sort of class caching.
Anyone knows why?