DjangoAdmin
安装django-admin
为数据进行增删改查是一个枯燥,有没有创造性的工作。django提供了一个内置的app,我们只需要做简单的配置就可以自动生成一个功能强大的管理后台。
要使用django admin非常简单:
- 首先你需要在INSTALL_APPS中注册
django.contrib.admin
,然后它的依赖,
- 模板设置
-
如果你自定义了MIDDLEWARE,必须包含
django.contrib.auth.middleware.AuthenticationMiddleware
- ``django.contrib.messages.middleware.MessageMiddleware`
-
在根路由中配置admin
path('admin/', admin.site.urls),
当你做完这些,你就可以通过'/admin'(默认)访问admin站点。
默认情况下,创建的项目会自动安装admin,不需要做任何操作即可使用django-admin。
创建管理员用户
要使用django-admin,你还需要创建一个用户来登录站点。通过python manage.py createsuperuser
命令。
管理模型
接下来,我们就需要为我们要管理的模型定义ModelAdmin。
app里有一个admin.py,在这个文件中我们注册我们想要管理的模型,代码如下:
from django.contrib import admin
# Register your models here.
from .models import Student, StudentDetail
admin.site.register(Student)
admin.site.register(StudentDetail)
然后访问admin站点,通过用刚才创建的超级管理员账号登录,你会看到如下页面
接下来我们就可以对这些模型的数据进行增删改查。
自定义设置
django admin 的强大之处在于,可以通过简单的设置,可以定义管理页面的显示方式。
如果我们要自定义设置,我们需要在admin.py中定义admin.ModeAdmin的子类:
class StudentAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'sex', 'qq', 'phone']
list_display_links = ['name']
list_filter = ['sex']
search_fields = ['name', 'qq', 'name', 'c_time']
list_per_page = 1
# fields = ['sex', 'name']
fieldsets = [
(None, {'fields': ['name', 'sex']}),
('详细信息', {'fields': ['qq', 'phone', 'grade']}),
('设置', {'fields': ['is_delete']})
]
admin.site.register(Student, StudentAdmin)
admin.site.register(StudentDetail)
列表页属性:
- list_display:显示字段,可以点击列头进行排序
- list_filter:过滤字段,过滤框会出现在右侧
- search_fields:搜索字段,搜索框会出现在上侧
- list_per_page:分页,分页框会出现在下侧
- list_display_links: 定义点击哪些字段可以调到修改增加页面
添加、修改页属性:
- fields:属性的先后顺序
- fieldsets:属性分组
注意:上面两个属性,二者选一。
更多详见官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/contrib/admin/
欢迎来到testingpai.com!
注册 关于