Django InlineModelAdmin 对象应用
Django
提供了两个 InlineModelAdmin
的子类,它们是:
TabularInline
StackedInline
这两者之间的区别是程序模板的不同。
假设你有两个Model
:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Meta:
verbose_name_plural = '作者管理'
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
class Meta:
verbose_name_plural = '书籍管理'
可以通过在 ModelAdmin.inlines
中指定内联来实现同一个页面编辑作者名字和对应的书名:
from django.contrib import admin
class BookInline(admin.TabularInline):
model = Book
class AuthorAdmin(admin.ModelAdmin):
list_display = (id, name)
fields = ('name')
inlines = [
BookInline,
]
参考: