使用Django Admin构建强大的后台管理系统
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”。
相关文章