【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 例子

【Django知识点】admin管理基本操作
注:两种方式只能选择一个,不要重复注册

3 配置app名字

verbose_name
【Django知识点】admin管理基本操作

4 创建超级管理员

python manage.py createsuperuser
>>  输入用户名
>>  输入邮箱
>>  输入密码
>>  确认密码

5 访问admin

http://127.0.0.1:8000/admin
【Django知识点】admin管理基本操作

【Django知识点】admin管理基本操作

5 admin首页设置

在admin. py 中

admin.site.site_header = 'XXX公司'
admin.site.site_title = '后台'
admin.site.index_title = '在线相册管理系统'

效果图:
【Django知识点】admin管理基本操作

7 添加数据

没有配置之前的显示:
【Django知识点】admin管理基本操作


【Django知识点】admin管理基本操作
配置:

@admin.register(Photo)
class PhotoAdmin(admin.ModelAdmin):
    fieldsets = [
        [
            '基本选项',{
                'fields':['title','img']            # 显示的字段
            }
        ],
        [
            '高级选项',{
                    'fields':['createDatetime'],    # 显示的字段
                    'classes':('collapse',)         # 折叠
            }
        ],
    ]

【Django知识点】admin管理基本操作

8 显示数据

没有配置之前:
【Django知识点】admin管理基本操作


配置:

@admin.register(Photo)
class PhotoAdmin(admin.ModelAdmin):
    # 显示的字段
    list_display = ['id','title','img','createDatetime']
    # 每页多少条数据
    list_per_page = 1
    # 过滤器
    list_filter = ['createDatetime']
    # 搜索
    search_fields = ['title']

显示结果:
【Django知识点】admin管理基本操作