Performance: Inline models for related data
This affects page load speed and interaction responsiveness by controlling how related data forms are rendered and managed in the admin interface.
class BookInline(admin.TabularInline): model = Book extra = 1 # minimal empty forms class AuthorAdmin(admin.ModelAdmin): inlines = [BookInline]
class BookInline(admin.TabularInline): model = Book extra = 10 # renders 10 empty forms by default class AuthorAdmin(admin.ModelAdmin): inlines = [BookInline]
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Rendering 10 extra inline forms | High (many nodes) | 10 reflows | High paint cost | [X] Bad |
| Rendering 1 extra inline form | Low (few nodes) | 1 reflow | Low paint cost | [OK] Good |
class ChapterInline(admin.TabularInline):
model = Chapter
class BookAdmin(admin.ModelAdmin):
inlines = [ChapterInline]
admin.site.register(Book, BookAdmin)class AuthorInline(admin.TabularInline):
model = Author
class BookAdmin(admin.ModelAdmin):
inlines = [AuthorInline]
admin.site.register(Book, BookAdmin)Pass the test and this pattern moves unknown