admin定制后台管理系统
Django自带有一个功能强大的后台管理系统,通过使用一些admin自带的参数,可以定制出一套非常肺腑丰富的后台管理系统。
在浏览器后加上admin时,会弹出需要填写账户名密码的界面,我们需要先创建一个管理员账号,输入以下命令:
python manage.py createsuperuser
就会让你依次输入用户名邮箱和密码,注册完成之后,就可以进入浏览器然后输入注册的账号和密码,就可以进入后台的管理系统了
admin的注册
首先,如果要在Django的后台显示应用的模型,必须在应用所在的admin.py文件中注册模型,以下是Django官方文档给的一个最基本的后台管理的注册方式
from django.contrib import admin
from .model import Author
class AuthorAdmin(admin.ModelAdmin):
pass
admin.site.register(Author,AuthorAdmin)
这个过程分为以下3步:
- 导入 admin 及需要注册的模型(这里是 Author)
- 创建一个模型的管理类,继承
admin.ModelAdmin,这个类的参数后面详细介绍 - 注册模型的管理类
使用装饰器来注册
其实上面的过程可以把第2、3步结合起来,在创建模型的管理类的同时注册类,这就需要使用 admin 的装饰器,上面的例子改用装饰器之后的代码如下:
from django.contrib import admin
from .models import Author
@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
pass
使用装饰器可以让代码变得更加简洁.
admin 的定制
class BookAdmin(admin.ModelAdmin):
list_display=('id','name','price','pub_date') #定制显示的列
list_editable=('name','price') #让指定的属性在页面可直接修改
filter_horizontal=('author',) # 给多选增加一个左右添加的框
list_per_page=3 #控制每页显示的对象数量
search_fields=('id','name','publish__name') #显示一个搜索框,可查询指定属性的内容
list_filter=('pub_date','publish') #激活过滤器
ordering=('price',) #对指定属性进行排序,默认升序,若要降序改为'-price'
#然后作为参数注册到admin上
admin.site.register(models.Book,BookAdmin)

浙公网安备 33010602011771号