Django学习-后台admin管理

后台管理可以通过可视化方式编辑网站内容,但是要自己实现一个后台管理功能,需要进行用户认证、界面显示及安全性等各方面考虑。Django提供了一套自带的后台管理功能,当然也可以使用第三方开发的后台app。

Django的后台管理依赖于django.contrib包,这个包是Django基本代码的组成部分,它包括了用户鉴别系统(auth。需要创建超级用户)、会话、用户评注系统等。

启用Django的后台管理工具,需要在settings.py的app中注册auth、seeison、admin、contenttypes,需要在url中注册admin.

启用Django后台管理工具后,在浏览器中输入对应的url,会跳转至后台登录界面。

Django的Admin工作原理:

当服务启动时,Django会从urls.py中引导URLconf,然后执行admin.autodiscover(),这个函数会遍历settings.py中注册的APP配置,并且寻找对应的admin.py文件,如果在指定的APP中找到对应的admin.py文件,就执行文件中的代码,而之前我们写的register()代码,都会将括号内的模块注册到管理工具中,管理工具只为那些明确注册了的模块显示一个编辑/修改的界面。

而auth应用程序自身的admin.py文件中,注册了User和Groups,所以会在自动管理界面后台中自动显示。

内容点:

1.若需要在后台管理更多的内容,需将对应的内容注册至后台管理app中。

注册方式:对应的app中新增admm.py文件,

from django.contrib import admin
# 导入需要管理的模块 #
admin.site.register(#对应的模型名称#)

2.在后台界面显示各个模型明细时,对应的标签是各个字段的映射,其映射规则是下划线替换为空格,首字母大写。如果想在界面显示不同的标签名称,可在定义模型时增加verbose_name属性,如email=models.EmailField(verbose_name="e_mail"),当然也可以将其作为字段第一个参数传入,但不适用于多对多或外键等字段,因为其第一个是其他模型名称。

3.更改模型在后台的显示详情(如显示email等字样,而非在明细页面再显示)

  在第一个register注册时,构造一个admin.Modeladmin子类对象,实现list_display属性,该属性是一个列表,表示显示哪些内容。然后在register时,将该类传给对应的register代码第二个参数。可以理解成以对应的Modeladmin选项注册模型。

4.在后台页面中追加快速查询栏。

  在第三个的Modeladmin子类中,再实现search_fileds属性,该属性也是一个列表(元祖)。

  注意:外键及多对多等字段的问题。

5.后台页面中使用过滤器(在页面右侧)

  在admin.py的Modeadmin子类中再实现list_filter属性,该属性同样是一个列表。

6.同样,你可以在admin中实现默认排序。

  在admin.py的Modeladmin子类中实现ordering属性,该属性是一个列表。

 

7.自定义显示编辑表单中的标签。

  对于在操作明细数据时,某些数据不希望被编辑,如创建时间,修改时间等,可通过在admin.py的Modeladmin子类中,实现fields属性,该属性是一个列表,列表中罗列的是可编辑标签,没有罗列的表示不可编辑标签,不会显示。

8.对于多对多的标签,再选择多个时操作会比较麻烦,django提供了一个精巧的javascript过滤器,可让你选中左边然后添加到右边,在admin.py的Modeadmin子类中,实现filter_horizontal属性,该属性同样是一个列表。仅适用于多对多字段。

   filter_vertical属性与filter_horizontal功能相同,只是一个是横向,一个是纵向

9.对于外键,如果外键可选择的太多,如上百个,则会导致在下拉框选择时会很麻烦。

  可以在admin.py的Modeadmin子类中实现raw_id_fields属性,该属性是一个列表(元祖),可解决该问题。(注它填的是数据库id)

10.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值