0
点赞
收藏
分享

微信扫一扫

Django 之 Admin的简单用法

ITWYY 2023-06-20 阅读 46



文章目录

  • 准备工作
  • 汉化 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

  • 管理页

Django 之 Admin的简单用法_数据

  • 数据编辑页

Django 之 Admin的简单用法_django_02

  • 数据条目页

Django 之 Admin的简单用法_数据_03

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 这一列


举报

相关推荐

0 条评论