30 Django管理后台之管理对象
在之前的章节中,我们探讨了如何自定义Django的管理界面,使其更加符合我们的需求。现在,我们将深入讨论如何在Django的管理后台中生成和管理对象,并对后台的功能进行细致的设置。
什么是Django的管理对象?
在Django中,管理对象指的是你在管理后台中所操作的模型实例。每一个模型都可以在管理界面中进行增、删、改、查操作。为了能在Django的管理后台中管理这些对象,我们首先需要定义一个模型,然后将这个模型注册到管理界面。
创建模型
首先,让我们定义一个简单的模型。例如,我们可以创建一个用于存储图书信息的模型,代码如下:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
published_date = models.DateField()
isbn = models.CharField(max_length=13)
def __str__(self):
return self.title
在上面的代码中,我们创建了一个Book
模型,其中包含了书名、作者、出版日期和ISBN等字段。
注册模型到管理后台
定义好模型后,我们需要将其注册到Django的管理后台。具体步骤如下:
- 打开
admin.py
文件。 - 导入我们的模型。
- 使用
admin.site.register()
方法注册模型。
示例代码如下:
from django.contrib import admin
from .models import Book
admin.site.register(Book)
通过这几行代码,Book
模型就成功注册到Django的管理后台了。
管理对象的功能
增加和编辑对象
在我们前面的章节中,我们已经完成了模型的创建及注册,接下来就可以在Django的管理后台进行对象的管理了。只需访问http://127.0.0.1:8000/admin/
,然后点击Books
,即可看到管理界面。
在这里,你可以轻松地添加新的书籍(对象)或编辑现有的书籍。
删除对象
为了删除对象,你只需在管理界面中选择相应的书籍,点击删除按钮即可。在弹出的确认框中确认删除操作。
自定义管理对象的显示方式
为了让管理界面更加友好,我们可以自定义表格中显示的信息。我们可以通过子类admin.ModelAdmin
来实现这一点。以下是如何自定义显示字段的示例:
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published_date', 'isbn') # 自定义显示字段
search_fields = ('title', 'author') # 添加搜索功能
# 注册自定义的管理类
admin.site.register(Book, BookAdmin)
在上面的代码中,我们通过list_display
来指定在列表中应该显示的字段,通过search_fields
来添加搜索功能。
过滤和分页
除了自定义显示字段,Django的管理后台还支持过滤和分页功能。我们可以通过下面的方式为我们的书籍列表添加过滤器:
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published_date', 'isbn')
search_fields = ('title', 'author')
list_filter = ('published_date',) # 添加过滤功能
ordering = ('published_date',) # 指定默认排序
admin.site.register(Book, BookAdmin)
在上述代码中,list_filter
将允许我们根据出版日期进行过滤,而ordering
则指定了默认的排序方式。
结论
至此,我们已经介绍了如何在Django的管理后台生成和管理对象。通过定义模型、注册模型到管理界面,以及自定义管理对象的显示方式,我们可以轻松地操作数据库中的数据。
接下来的章节中,我们将探讨如何部署Django应用,准备生产环境,以便让我们的Django项目顺利上线。