Django关于admin的使用技巧和知识点

1. Django Admin简介

Django是一个开放源代码的Web框架,其中内置了一个自动生成管理后台的功能 - Django Admin。Django Admin可以快速构建一个类似WordPress的后台管理系统,用于方便地管理我们的应用程序的数据、用户、权限及其他操作。

在Django Admin当中,应用程序所有的数据编辑、查看、删除等操作都是自动构建的,这大大减少了前端工程师的工作量,从而提高了开发效率。

2. Django Admin的常用功能模块

2.1 创建和编辑模型

在Django Admin中,我们可以通过简单的配置就能够创建并管理新模型,而不需要直接操作数据库。

首先,我们需要在模型(例如在`models.py`中)中注册这些模型:

from django.contrib import admin

from .models import ModelName

admin.site.register(ModelName)

然后,我们就可以在`admin.py`中创建一个`ModelAdmin`类,并将其绑定到我们的模型上:

from django.contrib import admin

from .models import ModelName

class ModelNameAdmin(admin.ModelAdmin):

pass

admin.site.register(ModelName, ModelNameAdmin)

通过以上代码,我们就能够在Django Admin中创建`ModelName`模型的相关表单并对其进行编辑。

2.2 状态过滤

在Django Admin中,我们可以轻松地筛选出我们想要查找的对象或数据集。我们可以按名称、状态或创建日期等过滤列表,为我们的查询操作提供了非常方便的条件限制功能。

例如我们可以通过下面的代码来告诉Django Admin,筛选出未读、已读或全部邮件:

from django.contrib import admin

from .models import Mailbox

@admin.register(Mailbox)

class MailboxAdmin(admin.ModelAdmin):

list_filter = ('status',)

在以上代码中,`list_filter`参数指示Django Admin将根据`status`筛选出我们需要的邮件类型。接下来,Django Admin会自动在列表页创建所需的表单,并用于筛选过滤出的邮件。

2.3 搜索功能

Django Admin还内置了一个搜索框,可以让我们轻松进行搜索。该搜索框可以轻松地搜索、找到我们想要的数据或对象。

例如,我们可以通过下面的代码告诉Django Admin,使用搜索框搜索我们的模型的属性值:

from django.contrib import admin

from .models import ObjectName

@admin.register(ObjectName)

class ObjectNameAdmin(admin.ModelAdmin):

search_fields = ('name', 'id')

在以上代码中,`search_fields`参数告诉Django Admin对`name`和`id`进行搜索操作。

2.4 页面分页

在Django Admin中,当我们处理超出一页的数据时,可以很容易地配置分页来避免将所有数据都同时加载到页面上。

默认情况下,Django Admin会将一页中的数据量最多显示到100个行。我们还可以通过配置`list_max_show_all`将数据显示到一个较高的值。例如:

from django.contrib import admin

class ObjectNameAdmin(admin.ModelAdmin):

list_max_show_all = 500

admin.site.register(ObjectName, ObjectNameAdmin)

2.5 模型排序

Django Admin中的模型可以配置按照某种顺序进行排序。排序可以使用单个属性(例如名字)或多个排序属性(例如名字和年龄)。

我们可以通过`ordering`属性在`ModelAdmin`类中更新模型排序。例如:

from django.contrib import admin

from .models import ModelName

class ModelNameAdmin(admin.ModelAdmin):

ordering = ('name',)

admin.site.register(ModelName, ModelNameAdmin)

在以上代码中,`ordering`的值告诉Django Admin在排序列表时使用名称(默认是升序),这将告诉Django Admin在列表页面上按名称排序我们的所有模型。

3. 总结

在Django Admin中,我们可以使用上述模块实现最基本的针对模型的管理操作。这种自动化的管理方法使得数据管理的复杂性大大降低了。如果需要通过自定义管理页面来处理一些额外的数据或后台操作,那么我们可以去扩充Django Admin的功能。

有了更深入的理解,我们可以使用Bootstrap和React等技术来构建更牛逼自定义化的后台管理系统了,如何实现自定义页面等需求请自行阅读Django官方文档。

后端开发标签