Admin 站点
Django 能够根据定义的模型类自动地生成管理页面。
使用 Django 的管理模块,需要按照如下步骤操作 :
- 管理界面本地化
- 创建管理员
- 注册模型类
- 自定义管理页面
调整列表页展示
list_per_page=100 # 页大小
actions_on_top=True # “操作选项位置”
list_display=[模型字段1,模型字段2,...] # 列表中的列
short_description # 通过设置short_description属性,可以设置在admin站点中显示的列名
admin_order_field=模型类字段 # 方法列是不能排序的,如果需要排序需要为方法指定排序依据
# 无法直接访问关联对象的属性或方法,可以在模型类中封装方法,访问关联对象的成员。
list_filter=[] # 右侧栏过滤器
search_fields=[] # 搜索框
调整编辑页展示
fields=[] # 显示字段
fieldset=(
('组1标题',{'fields':('字段1','字段2')}),
('组2标题',{'fields':('字段3','字段4')}),
) # 分组显示
# 关联对象
# 在一对多的关系中,可以在一端的编辑页面中编辑多端的对象,嵌入多端对象的方式包括表格、块两种。
# 类型InlineModelAdmin:表示在模型的编辑页面嵌入关联模型的编辑。
# 子类TabularInline:以表格的形式嵌入。
# 子类StackedInline:以块的形式嵌入。
调整站点信息
Admin站点的名称信息也是可以自定义的。
- admin.site.site_header 设置网站页头
- admin.site.site_title 设置页面标题
- admin.site.index_title 设置首页标语
上传图片
Django有提供文件系统支持,在Admin站点中可以轻松上传图片。
使用Admin站点保存图片,需要安装Python的图片操作包
pip install Pillow
配置
默认情况下,Django会将上传的图片保存在本地服务器上,需要配置保存的路径。
我们可以将上传的文件保存在静态文件目录中,如我们之前设置的static_files目录中在settings.py 文件中添加如下上传保存目录信息
MEDIA_ROOT=os.path.join(BASE_DIR,"static_files/media")
为模型类添加ImageField字段
我们为之前的BookInfo模型类添加一个ImageFiled
class BookInfo(models.Model):
...
image = models.ImageField(upload_to='booktest', verbose_name='图片', null=True)
- upload_to 选项指明该字段的图片保存在MEDIA_ROOT目录中的哪个子目录
进行数据库迁移操作
python manage.py makemigrations
python manage.py migrate
使用Admin站点上传图片
进入Admin站点的图书管理页面,选择一个图书,能发现多出来一个上传图片的字段