R / Richie全部文章 ↑

Python · 2 分钟阅读

注册 Model 到 Admin

Django Admin 让你零代码得到一个完整的后台管理界面。

默认依赖

startproject 时已自动配置:

  • INSTALLED_APPS:admin、auth、contenttypes、sessions、messages
  • MIDDLEWARE:对应的 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。