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-分组聚合查询

    一:::分组: 首先:导入分组函数 from django.db.models import Sum,Count # 查询 当前用户的分类归档 sum和count:之间的区别:sum是求出一个字段里面所有值加起来的和,而count是指每一字段各个数量. def mysite(request,username):   category_list=models.…

    Django 2023年4月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
  • Django之SQL注入漏洞复现(CVE-2021-35042)

    前言 SQL注入的原理是对web请求,表单或域名等提交查询的字符串没有进行安全检测过滤,攻击者可以拼接执行恶意SQL命令,导致用户数据泄露 漏洞原理 Django 组件存在 SQL 注入漏洞,该漏洞是由于对 QuerySet.order_by()中用户提供数据的过滤不足,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行 SQL 注入攻击,最终造成服务器敏…

    2023年4月10日
    00
  • Python Django项目和应用的创建详解

    Python Django项目和应用的创建详解 Django是一个流行的Python web框架,可以快速构建高质量的web应用程序。在本文中,我们将讨论如何使用Django创建项目和应用。 1. 安装Django 在创建Django项目之前,您需要先安装Django。您可以使用Pip包管理器轻松安装Django: pip install django 2.…

    Django 2023年5月16日
    00
  • Django中多种重定向方法使用详解

    Django中多种重定向方法使用详解 Django提供了多种重定向方法,常用的有HttpResponseRedirect、redirect和HttpResponsePermanentRedirect。本文将详细介绍这几种方法的使用以及示例。 HttpResponseRedirect HttpResponseRedirect是一个HTTP重定向响应,可将用户重…

    Django 2023年5月16日
    00
  • django中修改QueryDict数据类型和转成普通字典

    简介 在正常的请求/响应周期中访问时,request.POST和request.GET上的QueryDict将是不可变的. 要获得可变版本,您需要使用QueryDict.copy()或者._mutable = True 第一种方式 用request.POST调用_mutable并修改为True reuqets.POST._mutable = True 第二种…

    Django 2023年4月12日
    00
  • django中models联合唯一unique_together

    例: 文章点赞 class ArticleUpDown(models.Model): “”” 点赞表 “”” nid = models.AutoField(primary_key=True) user = models.ForeignKey(to=”UserInfo”, null=True, on_delete=models.CASCADE) article…

    Django 2023年4月11日
    00
  • Django+Vue打造购物网站(一)

    环境搭建 python == 3.6Django == 2.0 创建工程 django-admin startproject MxShop 配置setting.py文件 # 数据库 DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, ‘NAME’: ‘mxshop’, #数据库名字…

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