博客
关于我
admin
阅读量:761 次
发布时间:2019-03-23

本文共 2613 字,大约阅读时间需要 8 分钟。

使用管理站点

Django能够根据定义的模型类自动地生成管理页面。使用Django的管理模块,需要按照如下步骤操作:

1. 管理界面本地化

settings.py 中设置语言和时区:

LANGUAGE_CODE = 'zh-hans'  # 使用中国语言TIME_ZONE = 'Asia/Shanghai'  # 使用中国上海时间

2. 创建超级管理员

创建管理员的命令如下,按提示输入用户名,邮箱,密码:

python manage.py createsuperuser

打开浏览器,在地址栏中输入如下地址后回车:

http://127.0.0.1:8000/admin/

输入前面创建的用户名,密码完成登录。

3. 注册模型类

登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的 admin.py 文件中注册,才可以在后台管理中看到,并进行增删改查操作。

打开 booktest/admin.py 文件,编写如下代码:

from django.contrib import adminfrom booktest.models import BookInfo, HeroInfoadmin.site.register(BookInfo)admin.site.register(HeroInfo)

到浏览器中刷新页面,可以看到模型类的 BookInfoHeroInfo 的管理了。

点击类名称 "的BookInfo"(图书)可以进入列表页,默认只有一列。

4. 自定义管理页面

Django中提供的联系站点的展示效果可以通过自定义 ModelAdmin 类来进行控制。

定义管理类需要继承自 admin.ModelAdmin 类,如下:

from django.contrib import adminclass BookInfoAdmin(admin.ModelAdmin):    pass

使用管理类有两种方式:

  • 注册参数:
admin.site.register(BookInfo, BookInfoAdmin)
  • 装饰器:
@admin.register(BookInfo)class BookInfoAdmin(admin.ModelAdmin):    pass

列表页展示

1. 页大小

每页中显示多少条数据,默认为每页显示100条数据,属性如下:

list_per_page=100

打开 booktest/admin.py 文件,修改 BookInfoAdmin 类如下:

class BookInfoAdmin(admin.ModelAdmin):    list_per_page = 2

2. "操作选项"的位置

顶部显示的属性,设置为 True 在顶部显示,设置为 False 不在顶部显示,默认为 True

底部显示的属性,设置为 True 在底部显示,设置为 False 不在底部显示,默认为 False

打开 booktest/admin.py 文件,修改 BookInfoAdmin 类如下:

class BookInfoAdmin(admin.ModelAdmin):    actions_on_top = True    actions_on_bottom = True

3. 列表中的列

属性如下:

list_display=[模型字段1,模型字段2,...]

打开 booktest/admin.py 文件,修改 BookInfoAdmin 类如下:

class BookInfoAdmin(admin.ModelAdmin):    list_display = ['id','btitle']

4. 关联对象

无法直接访问关联对象的属性或方法,可以在模型类中封装方法,访问关联对象的成员。

打开 booktest/models.py 文件,修改 BookInfo 类如下:

class BookInfo(models.Model):    ...    def pub_date(self):        return self.bpub_date.strftime('%Y年%m月%d日')    pub_date.short_description = '发布日期'    pub_date.admin_order_field = 'bpub_date'

打开 booktest/admin.py 文件,修改 BookInfoAdmin 类如下:

class BookInfoAdmin(admin.ModelAdmin):    list_display = ['id','atitle','pub_date']

方法列是不能排序的,如果需要排序需要为方法指定排序依据。

打开 booktest/models.py 文件,修改 BookInfo 类如下:

class BookInfo(models.Model):    ...    def pub_date(self):        return self.bpub_date.strftime('%Y年%m月%d日')    pub_date.short_description = '发布日期'    pub_date.admin_order_field = 'bpub_date'

5. 右侧栏过滤器

属性如下,只能接收字段,会将对应字段的值列出来,用于快速过滤。一般用于有重复值的字段。

打开 booktest/admin.py 文件,修改 HeroInfoAdmin 类如下:

class HeroInfoAdmin(admin.ModelAdmin):    list_filter = ['hbook', 'hgender']

6. 搜索框

属性如下,用于对指定字段的值进行搜索,支持模糊查询。列表类型,表示在这些字段上进行搜索。

打开 booktest/admin.py 文件,修改 HeroInfoAdmin 类如下:

class HeroInfoAdmin(admin.ModelAdmin):    search_fields = ['hname']

以上步骤可以帮助您完成Django管理站点的设置与使用,通过这些配置,您可以更方便地管理应用中的数据。

转载地址:http://codzk.baihongyu.com/

你可能感兴趣的文章
Mysql 索引问题集锦
查看>>
Mysql 纵表转换为横表
查看>>
mysql 编译安装 window篇
查看>>
mysql 网络目录_联机目录数据库
查看>>
MySQL 聚簇索引&&二级索引&&辅助索引
查看>>
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>
MySQL 设置数据库的隔离级别
查看>>
MySQL 证明为什么用limit时,offset很大会影响性能
查看>>
Mysql 语句操作索引SQL语句
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)
查看>>
MySQL 调优/优化的 101 个建议!
查看>>