【Django知识点】admin管理基本操作
【Django知识点】admin管理基本操作
1 环境准备
1.1 settings中配置
1.数据库创建于配置
2.时区
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
3.上传文件路径(并创建文件夹)
MEDIA_ROOT = os.path.join(BASE_DIR,'static','img')
1.2 定义模型类
例如:
import datetime
from django.db import models
# Create your models here.
# 文件名随机
def upfile(instance,filename):
suffix = filename.rsplit('.')[-1]
return uuid.uuid4().__str__() + '.' + suffix
class Photo(models.Model):
class Meta():
verbose_name = '相册表'
verbose_name_plural = verbose_name
title = models.CharField(max_length=20,verbose_name='标题')
img = models.ImageField(upload_to=upfile,verbose_name='图片路径')
createDatetime = models.DateTimeField(default=datetime.datetime.now(),verbose_name='创建时间')
1.3 生成并执行迁移文件
python manage.py makemigrations
python manage.py migrate
2 admin注册模型类
2.1装饰器注册
格式:
@admin.register(【模型类名】)
class 【名字随意】(admin.ModelAdmin):
pass
2.2 函数注册
class 【类名A】(admin.ModelAdmin):
pass
admin.register(【模型类名】,【类名A】)
2.3 例子
注:两种方式只能选择一个,不要重复注册
3 配置app名字
verbose_name
4 创建超级管理员
python manage.py createsuperuser
>> 输入用户名
>> 输入邮箱
>> 输入密码
>> 确认密码
5 访问admin
5 admin首页设置
在admin. py 中
admin.site.site_header = 'XXX公司'
admin.site.site_title = '后台'
admin.site.index_title = '在线相册管理系统'
效果图:
7 添加数据
没有配置之前的显示:
配置:
@admin.register(Photo)
class PhotoAdmin(admin.ModelAdmin):
fieldsets = [
[
'基本选项',{
'fields':['title','img'] # 显示的字段
}
],
[
'高级选项',{
'fields':['createDatetime'], # 显示的字段
'classes':('collapse',) # 折叠
}
],
]
8 显示数据
没有配置之前:
配置:
@admin.register(Photo)
class PhotoAdmin(admin.ModelAdmin):
# 显示的字段
list_display = ['id','title','img','createDatetime']
# 每页多少条数据
list_per_page = 1
# 过滤器
list_filter = ['createDatetime']
# 搜索
search_fields = ['title']
显示结果: