Django administration has nice feature to render related models as inlines under the fieldsets out of the box. Unfortunately there is no easy way to render inlines between fieldsets.
But when the size of the model becomes bigger, ordering of fieldsets and related inlines becomes critical for the usability.
This package makes it easy to mix fieldsets and inlines in any order you want with minimal changes required to your existing code.
- Python: 3.4+
- Django: 2.0+
pip install django-fieldsets-with-inlines
Add fieldsets_with_inlines
to your INSTALLED_APPS Django settings.py:
INSTALLED_APPS = [
...
'fieldsets_with_inlines',
...
]
In your admin.py
import FieldsetsInlineMixin
, rename fieldsets
property to fieldsets_with_inlines
and list inlines right between your
fieldsets. You could also remove inlines
property:
from fieldsets_with_inlines import FieldsetsInlineMixin
...
class TestAdmin(FieldsetsInlineMixin, admin.ModelAdmin):
fieldsets_with_inlines = [
('Objekt', {
'fields': [
('ID_RNO', 'id', 'kljuc', 'slug'),
'naziv',
'kategorija']}),
LastnistvoInline,
('Kontaktni podatki', {
'fields': [
('kontaktna_oseba', 'email', 'poslji_obvestila')]}),
KontaktInline,
('Dostop', {
'fields': [
'users',
('cas_vpisa', 'zadnja_sprememba', 'cas_zadnje_posodobitve')]}),
OdjavaInline
]