ModelAdmin 类是模型在 Admin 界面中的表示形式,封装了模型的 Admin 功能和选项。通常,会将它们放在你的应用中的名为 admin.py 的文件里。
作为测试用例,我们先定义一个 Model:
from django.db import models
STATUS_CHOICES = (
('d', 'Draft'),
('p', 'Published'),
('w', 'Withdrawn'),
)
class Article(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
status = models.CharField(max_length=1, choices=STATUS_CHOICES)
def __str__(self):
return self.title
下面是一个 ModelAdmin 类的简单例子:
from django.contrib import admin
from myApp.models import Article
class ArticleAdmin(admin.ModelAdmin):
pass
admin.site.register(Article, ArticleAdmin)
现在在后台管理就能看到对 Article 类的管理界面了:
其实,如果我们不需要自定义管理界面的内容和功能的时候,是不需要使用 ModelAdmin 的,只要这样做即可:
from django.contrib import admin
from myApp.models import Article
admin.site.register(Article)
我们也可以通过装饰器,来使 Model 出现在管理界面:
from django.contrib import admin
from myApp.models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
pass
通过注册器,我们可以使用一个通用 ModelAdmin 模板,来管理多个 Model:
from django.contrib import admin
from myApp.models import Article, Author
@admin.register(Article, Author)
class ArticleAdmin(admin.ModelAdmin):
pass