python全栈开发基础知识学习——Django框架(六、Admin操作)

目录

  • 一、Admin的配置
    • 1.激活管理工具
    • 2.使用管理工具
    • 3.注册超级用户
    • 4.修改语言
  • 二、管理数据模型
    • 1.注册medel类到admin
    • 2.自定制类

一、Admin的配置

Admin是Django的一个强大的功能,它能从数据库中读取数据,并呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。

1.激活管理工具

通常我们在生成项目时会在 urls.py 中自动设置好,当这一切都配置好后,Django 管理工具就可以运行了。

# urls.py
from django.contrib import admin
from django.urls import path
 
urlpatterns = [
    path('admin/', admin.site.urls),
]

2.使用管理工具

启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到如下界面:

python全栈开发基础知识学习——Django框架(六、Admin操作)_第1张图片

3.注册超级用户

你可以通过命令 python manage.py createsuperuser 来创建超级用户,如下所示:

# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: 
Password:
Password (again):
Superuser created successfully.

邮箱地址可选,可填也可不填

注册完成后,我们便可以登陆强大的管理系统.

4.修改语言

如果你觉得英文界面不好用,可以在setting.py 文件中修改以下选项

LANGUAGE_CODE = 'en-us'  #LANGUAGE_CODE = 'zh-hans'

二、管理数据模型

1.注册medel类到admin

注册medel的两种方法:
		  <1>   使用register的方法
				admin.site.register(Book)
		  <2>   使用register的装饰器
		  		@admin.register(Book)  		
	方法二后面需要加一个自定制类

实现代码:
admin.site.register(models.Book)
admin.site.register(models.Publish)
admin.site.register(models.Author)

python全栈开发基础知识学习——Django框架(六、Admin操作)_第2张图片

当我们点击某个数据进行管理时,还缺乏某些功能需要我们自己自定制,比如搜索,排序等等功能。

python全栈开发基础知识学习——Django框架(六、Admin操作)_第3张图片

2.自定制类

from django.contrib import admin
from app import models

@admin.register(models.Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ("id","name", 'price',)    #在每一条记录上,指定要显示的字段
    list_editable = ("name", "price",)       #可直接对字段进行编辑

    filter_horizontal = ("author",)
    # filter_vertical = ("author",)

    # list_per_page = 2    #对记录进行分页,每一页只有XX条信息。
    search_fields = ("id", "name", )    #指定搜索的字段,可以选择多个字段

    list_filter = ("publish","put_data",)    #指定列表过滤器
    ordering = ("price",)     # 指定排序字段,默认以创建时间排序
    
admin.site.register(models.Publish)
admin.site.register(models.Author)

python全栈开发基础知识学习——Django框架(六、Admin操作)_第4张图片

常见的自定制方法有这几个,使用后能够是我们的管理界面更加的强大

  • list_display: 指定要显示的字段
  • search_fields: 指定搜索的字段
  • list_filter: 指定列表过滤器
  • ordering: 指定排序字段

当我们点击书籍的ID时,我们可以对某本书籍进行具体的编辑
python全栈开发基础知识学习——Django框架(六、Admin操作)_第5张图片

其实,当我们在添加书籍的时候,没有必要将所有的字段都需要填写,如果有些字段可选填的,那么就可以隐藏起来,我们需要补充时,就可以填写。这就要用到fieldsets,

    fieldsets =[
        (None,               {'fields': ['name']}),   
        ('price information', {'fields': ['price',"publish"], 'classes': ['collapse']}),
        ('put data',{'fields': ["put_data"], 'classes': ['collapse']} ),
    ]

python全栈开发基础知识学习——Django框架(六、Admin操作)_第6张图片

你可能感兴趣的:(python全栈学习)