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

Django核心管理模块在实际项目中的应用案例分享

发布时间:2023-12-26 21:24:51

在实际项目中,Django核心管理模块被广泛应用于管理后台,它提供了一套完整的界面和功能来管理数据库中的数据。下面是一个应用案例的分享,包含一个使用示例:

假设我们正在开发一个图书管理系统,需要管理图书信息和借阅记录。我们可以使用Django的核心管理模块来管理这些数据。

首先,创建一个Django项目并初始化数据库。

$ django-admin startproject book_management
$ cd book_management
$ python manage.py migrate

然后,创建一个应用。

$ python manage.py startapp books

接下来,定义图书和借阅记录的模型。

# books/models.py

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publication_date = models.DateField()

class BorrowRecord(models.Model):
    book = models.ForeignKey(Book, on_delete=models.CASCADE)
    borrower = models.CharField(max_length=100)
    borrow_date = models.DateField()
    return_date = models.DateField()

然后,注册模型到Django管理后台。

# books/admin.py

from django.contrib import admin
from .models import Book, BorrowRecord

admin.site.register(Book)
admin.site.register(BorrowRecord)

现在,我们可以运行开发服务器并访问Django管理后台。

$ python manage.py runserver

在浏览器中访问http://localhost:8000/admin,你将看到一个登录界面。创建一个超级用户以便登录。

$ python manage.py createsuperuser

然后使用创建的超级用户登录到管理后台。

现在,你可以在管理后台中管理图书信息和借阅记录。你可以添加、编辑和删除图书,并查看和搜索借阅记录。

除了基本的增删改查功能,Django管理模块还提供了其他一些功能,如支持分页、过滤器、自定义显示字段、导出数据等。

在图书管理系统案例中,我们可以添加一个自定义的列表显示字段,用来显示图书的剩余可借数量。首先,在模型中添加相关字段和方法:

# books/models.py

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publication_date = models.DateField()
    total_copies = models.IntegerField()
    available_copies = models.IntegerField(default=0)

    def save(self, *args, **kwargs):
        self.available_copies = self.total_copies - BorrowRecord.objects.filter(book=self).count()
        super().save(*args, **kwargs)

然后,在管理模块中定义自定义显示字段:

# books/admin.py

from django.contrib import admin
from django.utils.html import format_html
from .models import Book, BorrowRecord

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'publication_date', 'total_copies', 'available_copies')

admin.site.register(Book, BookAdmin)
admin.site.register(BorrowRecord)

现在,在管理后台中,你将看到图书列表显示了剩余可借数量。

以上是一个使用Django核心管理模块的应用案例分享,通过这个例子,你可以看到Django管理模块的强大功能和灵活性,它能帮助我们快速构建一个功能完善的管理后台。