欢迎访问宙启技术站
智能推送

Django中Admin()模块的使用教程

发布时间:2023-12-15 23:07:42

Django的Admin模块是Django提供的一种快速建立后台管理系统的方式,它提供了自动生成管理界面和处理常见管理操作的功能,可以大大减少开发后台管理系统的时间和工作量。

Admin模块的使用步骤如下:

1. 创建一个Django项目并启动开发服务器:

$ django-admin startproject myproject
$ cd myproject
$ python manage.py runserver

2. 创建一个应用:

$ python manage.py startapp myapp

3. 在Django项目的settings.py文件中注册应用:

INSTALLED_APPS = [
    ...
    'django.contrib.admin',
    'myapp',
    ...
]

4. 在myapp目录下的models.py文件中定义需要管理的模型:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

5. 在myapp目录下的admin.py文件中注册要管理的模型:

from django.contrib import admin
from .models import Article

admin.site.register(Article)

现在,就可以运行开发服务器,并在浏览器中访问http://localhost:8000/admin/来进入后台管理系统。

在后台管理系统中,可以进行以下操作:

1. 创建、编辑和删除文章对象。

2. 搜索和过滤文章列表。

3. 对文章进行排序。

4. 对文章进行批量操作,如删除多个文章。

5. 对文章进行分页展示。

Admin模块还提供了自定义选项来扩展和定制管理界面的功能。

下面是一个使用Admin模块的示例代码:

from django.db import models
from django.contrib import admin

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['-created_at']

class ArticleAdmin(admin.ModelAdmin):
    list_display = ['title', 'created_at']
    search_fields = ['title']
    list_filter = ['created_at']
    date_hierarchy = 'created_at'
    actions = ['make_published']

    def make_published(self, request, queryset):
        queryset.update(status='published')
    make_published.short_description = "标记为已发布"

admin.site.register(Article, ArticleAdmin)

在这个例子中,我们自定义了Article模型的管理选项(ArticleAdmin),通过指定list_display、search_fields、list_filter、date_hierarchy等选项,定制了管理界面中展示的字段、搜索和过滤选项、按日期分层等功能。同时,还自定义了一个批量操作make_published,用于将选中的文章标记为已发布。

需要注意的是,在实际使用中,可以根据需求对Admin模块进行更多的自定义,包括自定义表单、自定义模板、自定义权限等。

总结起来,Django的Admin模块是一种强大且灵活的后台管理系统解决方案,通过简单的配置和少量的代码,就可以快速地建立起一个功能完善的后台管理系统,提高开发效率。