ModelAdmin 类常用属性:
from django.contrib import admin
from .models import Category
class ArticleAdmin(admin.ModelAdmin):
# fields 列表里的是 修改页面时 的显示的字段
# 可用元组将 title, author, category 这几个字段放在同一行显示
fields = (('title', 'author', 'category'),
'description', 'content', 'tag')
# list_displat 列表中的是 查看这个类型时 会显示出来的字段
list_display = ('title', 'pub_date', 'category', 'author')
# 下面三个依次是 排序功能、右边侧栏过滤功能、搜索框查询功能
ordering = ('pub_date', )
list_filter = ('category', 'pub_date', )
search_fields = ('title', 'author', 'category', 'tag', )
admin.site.register(Article, ArticleAdmin)
InlineModelAdmin 对象使得在A模型的管理界面可以操作内联模型B(B外键关联了A),它有两个子类,TabularInline、StackedInline。
假设有两个模型:
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)
通过在 ModelAdmin.inlines 属性 指定内联(Book模型)来添加到Author模型中,这样可以在Author管理界面操作内联的 Book。
from django.contrib import admin
class BookInline(admin.TabularInline):
model = Book
class AuthorAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]