Я написал небольшое приложение, сделать это очень легко: https://github.com/omji/django-tabbed-admin
Он пытается работать так же, как и для наборов полей, чтобы сохранить логику django. Вы просто наследуете свой класс администратора от модели с вкладками. Вы также можете смешать его со строками и заказать их так, как вы хотите. Например:
class BandAdmin(TabbedModelAdmin):
tab_overview = (
(None, {
'fields': ('name', 'bio', 'style')
}),
MusicianInline,
('Contact', {
'fields': ('agent', 'phone', 'email')
})
)
tab_album = (
AlbumInline,
)
tabs = [
('Overview', tab_overview),
('Albums', tab_album)
]