Django后台admin的使用详解

yizhihongxing

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 – 模型表单(创建、更新、删除)

      urls.py # /music/alubm/add/ url(r’^album/add/$’, views.AlbumCreate.as_view(), name=”album-add”),   # /music/alubm/3/update/   url(r’^album/(?P<pk>\d+)/update/$’, views.Albu…

    Django 2023年4月11日
    00
  • Django笔记九之model查询filter、exclude、annotate、order_by

    在接下来四五篇笔记中,将介绍 model 查询方法的各个细节,为我们的查询操作提供各种便利。 本篇笔记将介绍惰性查找、filter、exclude、annotate等方法,目录如下: 惰性查找 filter exclude annotate alias order_by 1、惰性查找 前面我们在介绍 Django 增删改查的时候,提到过他的惰性查找的规则。 …

    2023年4月10日
    00
  • django之常用命令详解

    下面是对 “django之常用命令详解” 的详细讲解以及两条示例说明。 Django之常用命令详解 在使用 Django 进行开发时,有一些通用的命令是必须要掌握的。下面就详细说明这些 Django 常用命令及其使用方法。 创建一个新的 Django 项目 要创建一个基本的 Django 项目,只需要运行以下命令: django-admin startpro…

    Django 2023年5月15日
    00
  • Django启动报错:AttributeError: ‘str’ object has no attribute ‘decode’

    Exception in thread Thread-1: Traceback (most recent call last): File “/usr/local/lib/python3.7/threading.py”, line 917, in _bootstrap_inner self.run() File “/usr/local/lib/python3…

    Django 2023年4月11日
    00
  • python–Django(后台管理模块)

    一、准备工作   1.创建应用 python manage.py startapp test   2.定义模型类     (1)打开刚创建的app目录test,打开models.py文件     (2)代码如下 from django.db import models class classes(models.Model): name = models.Ch…

    Django 2023年4月11日
    00
  • Django | pycharm 提示 unresolved attribute referene ‘objects’ for class ‘xxxx’

      objects高亮,提示信息为unresolved attribute referene ‘objects’ for class ‘BookInfo’     当前情况是pycharm没有识别到objects,并不会影响程序运行 只需要在BookInfo 模型类中的 字段同一级,加入如下代码,即可 objects = models.Manager()  …

    Django 2023年4月11日
    00
  • 将Django框架和遗留的Web应用集成的方法

    将Django框架和遗留的Web应用集成,通常有两种方法: 一、使用Django的中间件 首先,使用Django的中间件将遗留Web应用程序整合到Django的请求响应周期中。中间件是一段代码,可以拦截Django中的请求,使它们能够被遗留Web应用程序的服务所解析。 对于Web应用的每个URL,配置一个Django视图函数,该视图函数使用中间件获取原始请求…

    Django 2023年5月16日
    00
  • 将Django项目迁移到linux系统的详细步骤

    将Django项目迁移到Linux系统是一个非常常见的操作。下面是将Django项目迁移到Linux系统的详细步骤。 准备工作 首先,你需要在Linux系统上安装Django。你可以通过使用包管理器来安装Django,例如通过如下命令安装: sudo apt-get update sudo apt-get install python3-django 请注意…

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