Получил похожую проблему. Я решил это с помощью «add_fieldsets» и «limited_fieldsets» в ModelAdmin.
from django.contrib import admin
class MyAdmin(admin.ModelAdmin):
declared_fieldsets = None
restricted_fieldsets = (
(None, {'fields': ('mod_obj1', 'mod_obj2')}),
( 'Text', {'fields': ('mod_obj3', 'mod_obj4',)}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('add_obj1', 'add_obj2', )}),
)
См. Например: http://code.djangoproject.com/svn/django/trunk/django/contrib/auth/admin.py
Но это не защищает вашу модель от последующих изменений "add_objX".
Если вы тоже этого хотите, я думаю, вам нужно пройти через функцию «Сохранить» класса Model и проверить там изменения.
См .: www.djangoproject.com/documentation/models/save_delete_hooks/
Greez, Ник