文章目录
- 准备工作
 
- 汉化 admin 系统
 - 创建管理员
 - 将表注册到 admin 系统
 
- 使用
 
- models.py
 - admin.py
 
 
准备工作
汉化 admin 系统
# settings.py
LANGEUAGE_CODE = 'zh-hans'创建管理员
# 命令行创建管理员用户,  根据提示输入密码等信息
python manage.py createsuperuser将表注册到 admin 系统
- 无需自定义条目展示页 - host/admin.py
 
from app01 import models
	
# 将 app 中的表注册到 admin 中, admin.site.register(models.类名)
# 只有被注册的表才能被 admin 系统管理
admin.site.register(models.Host)- 需要自定义条目展示页 - host/admin.py
 
from django.contrib import admin
from host import models
@admin.register(models.Host)
class MyHost(admin.ModelAdmin):
    # 自定义参数内容
    # ..
    # ..使用
models.py
from django.db import models
# Create your models here.
class Host(models.Model):
    # AutoField 表示自增列
    # primary_key 表示为该表主键
    id = models.AutoField(primary_key=True)
    # 修改字段名显示
    # 可以对 django 表单填写的数据进行约束, 如: uniqu, max_length 等
    hostname = models.CharField(max_length=16, verbose_name="主机名")
    ip_addr = models.CharField(max_length=32, verbose_name="IP地址", unique=True)
    # 修改表名显示
    class Meta:
        verbose_name = "主机信息"
        verbose_name_plural = verbose_name
    # 信息条目页面显示的内容, 如果不写则会展示 xx object(1), xx object(2)
    def __str__(self):
        return self.hostname- 管理页
 

- 数据编辑页
 

- 数据条目页
 

admin.py
from django.contrib import admin
from host import models
@admin.register(models.Host)
class MyHost(admin.ModelAdmin):
	# 数据条目页
	list_display = ["hostname", "ip_addr"]			# 展示这两列
	
	# 这两列只能同时存在一个
	list_editable = ["hostname", "ip_addr"]			# 可编辑的列
	list_display_links = ["hostname", "ip_addr"]	# 超链接的列
	
	# 用于筛选
	search_fields = ["hostname", "ip_addr"]			# 上方搜索框, 指定关键字搜索范围
	list_filter = ["hostname", "ip_addr"]			# 侧边筛选菜单, 可点击筛选符合条件的条目
	
	# 空值是默认显示, 如果列可编辑, 则不显示这个
	empty_value_display = "无数据"
		
		
	# 数据编辑页
	fields = ["ip_addr"]							# 只展示 ip_addr 这一列
	exclued = ["hostname"]							# 只不展示 hostname 这一列                










