一、InlineModelAdmin的介绍
管理界面可以在与父模型相同的页面上编辑模型。这些被称为内联。
Django提供了两个子类,InlineModelAdmin
它们是:
这两者之间的区别仅仅是用于呈现它们的模板。
二、InlineModelAdmin的使用
1、假设现在有这样的model
from django.db import models class Author(models.Model): name = models.CharField(max_length=100) class Book(models.Model): author = models.ForeignKey(Author, on_delete=models.CASCADE) title = models.CharField(max_length=100)
2、你可以编辑作者页面上创作的书籍,在模型中指定他们,可以将内联添加到模型中。
from django.contrib import admin class BookInline(admin.TabularInline): model = Book class AuthorAdmin(admin.ModelAdmin): inlines = [ BookInline, ]
三、InlineModelAdmin的选项
InlineModelAdmin
与许多相同的功能ModelAdmin
共享,并增加了一些功能(共享功能实际上是在BaseModelAdmin
超类中定义的 )。共享功能是:
fieldsets
fields
formfield_overrides
exclude
filter_horizontal
filter_vertical
ordering
prepopulated_fields
get_queryset()
radio_fields
readonly_fields
raw_id_fields
formfield_for_choice_field()
formfield_for_foreignkey()
formfield_for_manytomany()
has_add_permission()
has_change_permission()
has_delete_permission()
has_module_permission()
详见官方文档。