django-admin

本贴最后更新于 691 天前,其中的信息可能已经东海扬尘

DjangoAdmin

安装django-admin

为数据进行增删改查是一个枯燥,有没有创造性的工作。django提供了一个内置的app,我们只需要做简单的配置就可以自动生成一个功能强大的管理后台。

要使用django admin非常简单:

  1. 首先你需要在INSTALL_APPS中注册django.contrib.admin,然后它的依赖,

image.png

  1. 模板设置

image.png

  1. 如果你自定义了MIDDLEWARE,必须包含

    • django.contrib.auth.middleware.AuthenticationMiddleware
    • ``django.contrib.messages.middleware.MessageMiddleware`
  2. 在根路由中配置admin

    path('admin/', admin.site.urls),

当你做完这些,你就可以通过'/admin'(默认)访问admin站点。

image.png

默认情况下,创建的项目会自动安装admin,不需要做任何操作即可使用django-admin。

创建管理员用户

要使用django-admin,你还需要创建一个用户来登录站点。通过python manage.py createsuperuser命令。

image.png

管理模型

接下来,我们就需要为我们要管理的模型定义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站点,通过用刚才创建的超级管理员账号登录,你会看到如下页面

image.png

接下来我们就可以对这些模型的数据进行增删改查。

自定义设置

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)

列表页属性:

添加、修改页属性:

注意:上面两个属性,二者选一。

更多详见官方文档:https://docs.djangoproject.com/zh-hans/3.2/ref/contrib/admin/

回帖
请输入回帖内容 ...