Django(五):后台管理平台admin

本文介绍了如何配置Django项目的超级用户登录、后台显示中文及北京时区,并展示了两种将模型注册到admin后台的方法,以及如何自定义admin后台模型的展示,包括指定显示字段、搜索、过滤和排序等选项。
摘要由CSDN通过智能技术生成

基础

设置超级用户登录admin

# 新建用户名、邮箱、密码
python manage.py createsuperuser

admin后台的中文与北京时区设置

项目下的settings.py

# 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',            
    'django.contrib.sessions.middleware.SessionMiddleware',     
    'django.middleware.locale.LocaleMiddleware',        # change:让admin后台显示中文
    'django.middleware.common.CommonMiddleware',               
    'django.middleware.csrf.CsrfViewMiddleware',              
    'django.contrib.auth.middleware.AuthenticationMiddleware',  
    'django.contrib.messages.middleware.MessageMiddleware',    
    'django.middleware.clickjacking.XFrameOptionsMiddleware',   
]


# 国际化与本地化配置
LANGUAGE_CODE = 'zh-hans'      # 语言 change

TIME_ZONE = 'Asia/Shanghai'   # 时区 change

USE_I18N = True  # 语言

USE_L10N = True     # 数据和时间格式

USE_TZ = True   # 启用时区

admin.py

将模型注册(绑定)到admin后台

简单实现

from django.contrib import admin
from .models import Example

admin.site.register(Example)
方法一:装饰器@admin.register

app下的admin.py

from django.contrib import admin
from .models import Example

@admin.register(Example)
class ExampleAdmin(admin.modelAdmin):
	pass
方法二:admin.site.register

app下的admin.py

from django.contrib import admin
from .models import Example

class ExampleAdmin(admin.modelAdmin):
	pass

admin.site.register(Example, ExampleAdmin)

admin后台模型的展示

from django.contrib import admin
from .models import Example

@admin.register(Example)
class ExampleAdmin(admin.modelAdmin):
	list_display = ('id', 'name', 'age', 'sex')		# 指定要显示的字段
	# list_display = (x for x in list(Types._meta._forward_fields_map.keys())])		# 展示所有字段
	search_fields = ('name',)		# 指定搜索的字段
	list_filter = ('sex',)		# 站点右侧的列表过滤器,指定过滤字段
	ordering = ('name', 'age')		# 指定默认展示时的排序字段
	
	# fields = ('age', 'sex')		# 指定站点上新增和修改数据的字段
	fieldsets = (		# 字段很多时,划分字段集		# 元素为二元组(字段集的标题,字典)
		(None, {
			'fields': (
				'name',
			),
		}),
		('个人信息', {
			'fields': (
				'age',
				('QQ', 'Email', 'Phone',),		# 一行显示
				'sex', 
			),
		}),
	)

新增和修改数据,以下字段类型不在后台显示和填写

  • AutoField
  • DateField、TimeField、DateTimeField

MyDjango 实例

详情见此篇文章的基础部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值