Python · 2 分钟阅读
注册 Model 到 Admin
Django Admin 让你零代码得到一个完整的后台管理界面。
默认依赖
startproject 时已自动配置:
INSTALLED_APPS:admin、auth、contenttypes、sessions、messagesMIDDLEWARE:对应的 Session / Auth / Message 中间件TEMPLATES:auth与messages上下文处理器
中间件顺序敏感,调整前请阅读官方文档。
注册 Model
post/admin.py:
from django.contrib import admin
from post.models import Topic, Comment
# 方式一:函数式
admin.site.register(Topic)
admin.site.register(Comment)
# 方式二:装饰器(推荐)
@admin.register(Topic)
class TopicAdmin(admin.ModelAdmin):
list_display = ("id", "title", "user", "is_online", "created_time")
list_filter = ("is_online", "created_time")
search_fields = ("title", "content")
ordering = ("-created_time",)
自定义展示名
class Topic(BaseModel):
class Meta:
verbose_name = "话题"
verbose_name_plural = "话题"
ModelAdmin 常用配置
| 选项 | 作用 |
|---|---|
list_display |
列表页展示字段 |
list_filter |
右侧过滤器 |
search_fields |
搜索框字段 |
ordering |
默认排序 |
list_per_page |
每页条数 |
readonly_fields |
只读字段 |
fieldsets |
详情页分组 |
inlines |
关联编辑 |
登录与权限
python manage.py createsuperuser
后台地址:http://127.0.0.1:8000/admin/
Admin 应仅开放给可信用户。生产环境建议加 2FA、IP 白名单或前置 SSO。