Django admin组件

   adminDjango自带的后台管理组件,你可以在admin中执行增删改查等操作。

   它以可视化的方式让你来操纵模型表,十分的便捷。

基本使用 数据准备

   如下,在app01中有一个这样的模型表:

from django.db import models # Create your models here. class User(models.Model): user_id = models.AutoField(primary_key=True, verbose_name="用户编号") user_name = models.CharField(max_length=32, verbose_name="用户名") user_gender = models.BooleanField( choices=([0, "male"], [1, "female"]), verbose_name="用户性别") user_introduction = models.TextField( max_length=1024, null=True, blank=True, verbose_name="用户简介") def __str__(self): return self.user_name

  

创建用户

   当运行了数据库迁徙命令后,需要创建一个可登录admin进行管理的超级账户。

python manage.py createsuperuser

   它会提示你输入用户名,以及密码,密码不能少于八位。

   可以选填邮箱。

注册admin

   管理员用户创建完成后,在app01应用下进行注册。

from django.contrib import admin from .models import * admin.site.register(User)

   接下来打开admin,输入账户名与密码后,就可以看到这张表。

  

image-20201023144617473

   接下来就可以对该表进行增删改查了。

  

image-20201023144728667

深度配置 models参数

   在创建模型表时,可以对字段添加一些与admin相关的参数。

参数 描述
verbose_name   Admin中显示的字段名称  
blank   Admin中进行添加或编辑时,该字段是否可以为空  
editable   Admin中是否可编辑该字段  
help_text   Admin中的帮助信息  
choices   Admin中选择框显示的内容  

   在这里的blank与verbose_name以及choices都比较常用。

   除了在模型表的字段上进行配置外,也可以在该表下定制元信息。这其中有关于该表在Admin中的信息显示,如下所示:

class User(models.Model): 字段 = 类型(条件) 字段 = 类型(条件) class Meta: verbose_name = "Admin中显示的表名" admin配置

   如果要对一个注册的表进行深度配置,可在admin.py中对它进行。

   常用的配置方式有两种,如下所示:

from django.contrib import admin # 装饰器注册 @admin.register(User) class UserConfig(admin.ModelAdmin): 配置项.... # 使用site class UserConfig(admin.ModelAdmin): 配置项.... admin.site.register(CustomAdmin, UserConfig) # 应用配置项

   下面是admin深度配置的一些常用选项。

from django.contrib import admin from .models import * # Register your models here. class UserConfig(admin.ModelAdmin): # 自定义字段,作用显示 def edit(self): return "编辑" # 以下是自定义admin的使用 # 添加数据模板页 # add_form_template = None # 修改数据的模板页 # change_form_template = None # 修改多条数据的模板页 # change_list_template = None # 删除确认信息模板页 # delete_confirmation_template = None # 删除关联数据的确认页 # delete_selected_confirmation_template = None # 修改历史的模板页 # object_history_template = None # 弹出框模板页 # popup_response_template = None # 不支持多对多字段,展示表中的字段。 list_display = ["user_id", "user_name","user_gender",edit] # 点击字段可进入change页面 list_display_links = [edit] # 过滤筛选,支持各种关系 list_filter = ["user_gender"] # 支持在页面修改的字段,与list_display_links有冲突 list_editable = ["user_name"] # 模糊搜索,可以按照编号、名字搜索.或关系 search_fields = ["user_id","user_name"] # 用于和action定制项做批处理 def patch_init(self,request,queryset): """ queryset:选中的字典 """ # 选中的用户全改为男性... queryset.update(user_gender=False) # 添加描述 patch_init.short_description = "批量修改性别" actions = [patch_init] admin.site.register(User)

   以下是配置完成后的样式,自行对应配置项进行配置后查看即可。

  

image-20201023150242020

中文显示

   如果想要在admin中进行中文显示,则可以在全局的settings.py中配置语言。

# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-Hans' # 中文显示 执行流程

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfwsw.html