Django后台admin的使用详解

Django后台admin的使用详解

Django框架提供了一个强大的后台管理系统,即Django Admin。它可以让我们快速地创建、修改和删除数据库中的数据记录,通过Django Admin,我们可以在不编写任何代码的情况下,创建一个完整的后台管理系统。下面我们来详细讲解Django Admin的使用。

配置Django Admin

在使用Django Admin之前,我们需要在Django项目中进行一些配置。具体步骤如下:

  1. 在项目的settings.py文件中,将django.contrib.admin应用程序添加到INSTALLED_APPS列表中。

python
INSTALLED_APPS = [
# ...
'django.contrib.admin',
# ...
]

  1. 然后,在project/urls.py文件中,将django.contrib.admin应用程序的URL设置添加到项目URLconf中。即在urlpatterns列表中包含:

```python
from django.contrib import admin

urlpatterns = [
path('admin/', admin.site.urls),
]
```

完成以上两步后,我们已经完成了Django Admin的基本配置。现在,我们可以访问http://localhost/admin/来访问我们的Django Admin后台。

创建管理站点(Site)和管理模型(Model)

在Django Admin中,我们可以为一个或多个Django应用程序添加管理站点(Site),每个站点对应一个URL。我们还可以在站点下为多个模型(Model)添加自定的管理页面,每个模型对应一个关系数据库表。

创建管理站点(Site)

默认情况下,我们已经创建了一个名为admin的管理站点。如果我们需要创建一个新的管理站点,我们可以使用admin.site.register()函数。例如,我们可以创建一个名为myadmin的管理站点:

from django.contrib.admin import AdminSite

class MyAdminSite(AdminSite):
    site_title = 'My Admin Site'
    site_header = 'My Admin'

myadmin = MyAdminSite(name='myadmin')

将上述代码添加到项目的某个Python模块中,然后将myadmin管理站点添加到project/urls.py文件中:

from django.contrib import admin

from .admin import myadmin

urlpatterns = [
    path('admin2/', myadmin.urls),
    path('admin/', admin.site.urls),
]

这里我们将Django Admin默认的admin管理站点和我们自定义的myadmin管理站点都添加到了URLconf中。

创建管理模型(Model)

在Django应用程序中,我们可以创建多个模型,每个模型都对应一个关系数据库表。我们可以使用Django Admin为这些模型创建自定义的管理页面。

我们可以使用ModelAdmin类来自定义模型的管理页面。我们可以在ModelAdmin子类中设置一些属性和方法,以自定义模型的管理页面的行为和显示。下面我们将讨论如何自定义模型的管理页面。

自定义ModelAdmin

我们可以使用Django Admin的ModelAdmin类为我们的模型创建自定义的管理页面。我们可以在子类中设置一些属性和方法来自定义模型的管理页面的行为和显示。下面我们将讨论如何自定义模型的管理页面。

显示模型列表

如果我们需要在模型管理页面上显示列表,请创建一个ModelAdmin子类,并设置list_display属性。这个属性定义了哪些字段列在模型列表中。默认情况下,只有模型的__str__ ()方法的返回结果列在模型列表中。

例如,如果我们有一个Book模型,我们希望在模型列表中显示 book_title、author 和 publish_year 三个字段,我们可以创建一个BookAdmin类,并设置 list_display属性:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('book_title', 'author', 'publish_year')

admin.site.register(Book, BookAdmin)

现在你已经在Django Admin后台看到了具体的模型列表。

过滤和搜索模型

Django Admin还允许我们过滤模型并搜索它们。我们可以使用list_filter和search_fields属性来过滤和搜索模型。

例如,如果我们想在Book管理员页面上添加一个过滤器,以允许管理员按作者过滤图书,则可以更改BookAdmin类:

class BookAdmin(admin.ModelAdmin):

    list_display = ('book_title', 'author', 'publish_year')

    # Add filter by 'author'
    list_filter = ('author', )

    search_fields = ('book_title', 'author')

现在,我们在Django Admin后台已经添加了一个 'author' 的过滤器,管理员可以使用它来过滤图书。同时, 我们为后台页面添加了一个文本框,让管理员输入书名或作者的名字,以便快速搜索目标。

结束语

在本文中,我们介绍了如何在Django中使用Django Admin来创建自定义后台管理页面。我们学习了如何创建管理站点和管理模型,以及如何自定义模型的列表、搜索和过滤行为。这样,我们可以轻松地为我们的应用程序创建一个可自定义的管理页面,方便我们快速操作数据记录并进行管理。

示例说明

以上是Django后台admin的使用详解。我们在内容中添加了两个示例来阐述相关的概念和方法。第一个示例是创建一个新的管理站点,它演示了如何创建一个新的站点并将其添加到Django项目中。第二个示例是自定义ModelAdmin,它演示了如何在模型的管理页面中自定义列表、搜索和过滤行为。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django后台admin的使用详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django项目部署之sqlite版本升级

    项目环境: centos7 django 2.2.10 问题描述: 使用了django 2.2.12版本开发项目,此版本对应的sqlite需要升级为3.8.0以上。 百度了不少解决方案,缺点:过程繁琐、重启centos后失效。 报错提示: django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or…

    Django 2023年4月11日
    00
  • python之Django自动化资产扫描的实现

    我将详细讲解一下“python之Django自动化资产扫描的实现”的完整攻略,过程中会包含两条示例说明。 1. 什么是Django自动化资产扫描 Django是一个基于Python的Web框架,它简单易用,自带ORM(对象关系映射)和模板系统,可以轻松构建Web应用。本文所讲的Django自动化资产扫描,是指使用Django框架实现网络资产扫描的过程。 2.…

    Django 2023年5月16日
    00
  • Django项目中表的查询的操作

    在 Django 项目中进行表的查询操作是开发过程中非常常见的任务,可以用来获取表中的特定实例或者实例集合,以便将它们展示给用户、对它们进行修改,等等。在本篇文章中,我们将深入探讨 Django 中表的查询操作的完整攻略。 一、查询操作的基本语法 Django 中查询操作是通过模型对象(即 models.py 中的模型定义)来实现的。最简单的查询方法是对模型…

    Django 2023年5月16日
    00
  • vue前端与django后端数据交互

    //把数据传到路径为/airCdt/的django后端函数进行数据处理 onSubmit(){ const dict={ ‘floor’: this.formLabelAlign.floor, ‘room’: this.formLabelAlign.room, ‘status’: this.formLabelAlign.status, ‘mode’: thi…

    Django 2023年4月12日
    00
  • Django 的逆向解析url(转)

    Django中提供了一个关于URL的映射的解决方案,你可以做两个方向的使用:             1.有客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的试图,                 获取相应的数据,然后返回给客户端显示              2.通过一个视图的名字,再加上一些参数和值,逆向获取相…

    Django 2023年4月13日
    00
  • Python 做Django 项目遇到问题:Not Found: /c_hello(或/c_webskt/)

    出现如图所示的情况,一般先看端口是否被占用,或者更换端口号重新启动服务 查看指定端口占用情况netstat -aon | findstr 8000 查看对应PID进程tasklist|findstr “18836” 结束该进程taskkill /f /t /im CLodopPrint32.exe

    Django 2023年4月13日
    00
  • 详解Django中Cookie和Session

    Cookie和Session简介 Web应用程序中的Cookie和Session是非常重要的概念。它们是用来跟踪用户状态和提高用户访问体验的重要方式。 在Django中,Cookie和Session都是默认开启的。这两个功能可以用于记录用户的登录状态、跟踪用户的浏览历史和购物车等数据。Cookie和Session的区别在于,Cookie存储在用户的浏览器中,…

    Django 2023年3月12日
    00
  • Web框架django[Form]组件

    新手上路 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1、创建Form类 # 创建一个类 from django import forms from django.forms import fields class DiyForm(form…

    Django 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部