使用Django Admin构建强大的后台管理系统

2023-04-11 00:00:00 构建 管理系统 后台

Django Admin 是 Django 自带的后台管理系统,可以用于快速构建强大的管理界面。在 Django Admin 中,可以使用模型定义管理对象,自动生成 CRUD 操作界面,同时也支持高度定制化的功能扩展。

下面演示通过 Django Admin 来管理一个名为“Article”的模型:

首先,在 models.py 中定义 Article 模型:

from django.db import models

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

    def __str__(self):
        return self.title

接着,在 admin.py 中注册 Article 模型,以便 Django Admin 可以管理它:

from django.contrib import admin
from .models import Article

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'created_time', 'updated_time')
    search_fields = ('title',)
    list_filter = ('created_time', 'updated_time')

在上述代码中,@admin.register(Article) 装饰器将 Article 模型注册到 Django Admin 中。同时,定义了 ArticleAdmin 类,这个类继承自 admin.ModelAdmin,定义了一些管理 Article 模型的行为。

具体来说,list_display 定义了在列表页显示哪些字段;search_fields 定义了在列表页可以按哪些字段进行搜索;list_filter 定义了在列表页可以按哪些字段进行过滤。

最后,在 urls.py 中启用 Django Admin:

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

这样,访问 http://localhost:8000/admin/,就可以进入 Django Admin,对 Article 模型进行管理操作。

对于字符串作为范例的情况,可以在上述代码中将 title 的定义改为以下形式:

title = models.CharField(max_length=100, default='pidancode.com')

这样,在 Django Admin 中新增 Article 对象时,title 字段的默认值就是“pidancode.com”。

相关文章