文章目录
基础
设置超级用户登录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 实例
详情见此篇文章的基础部分。