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官方文档。