Django xadmin安装及使用详解
介绍
Django xadmin是一款基于Django的后台管理框架,可以快速构建自己的后台管理系统。它还提供了丰富的插件,扩展了Django原生后台的功能。
安装
1. 安装依赖
Django xadmin需要Pillow模块,安装命令如下:
pip install Pillow
2. 安装xadmin
使用pip命令安装:
pip install xadmin
3. 配置
在Django的settings.py文件中添加xadmin和crispy_forms的应用:
INSTALLED_APPS = [
...
'xadmin',
'crispy_forms',
...
]
在生成URL时,需要使用xadmin中的urls,因此将原来的后台url替换为xadmin的url:
from django.urls import path, include
urlpatterns = [
...
path('xadmin/', include('xadmin.urls')),
...
]
4. 运行
执行python manage.py runserver
命令,打开浏览器访问http://127.0.0.1:8000/xadmin/
,即可进入到xadmin的后台管理系统。默认的管理员账号是admin
,密码是admin
。
使用
1. 自定义模型
在xadmin中,我们可以使用@xadmin.register
装饰器装饰我们的模型类,例如:
from django.db import models
import xadmin
class Book(models.Model):
name = models.CharField(max_length=30)
author = models.CharField(max_length=30)
def __str__(self):
return self.name
class Meta:
verbose_name_plural = "书籍"
@xadmin.sites.register(Book)
class BookAdmin:
pass
以上代码自定义了一个模型类Book,并使用@xadmin.register
装饰器将其注册到xadmin中,类BookAdmin
继承自object
,使用pass
占位。
2. 自定义模型字段
在xadmin中,我们可以控制每个字段的显示效果,比如添加验证规则、修改标签等。例如:
@xadmin.sites.register(Book)
class BookAdmin:
list_display = ['name', 'author']
form_layout = (
Fieldset(
'基础信息',
Row('name', 'author'),
),
)
以上代码定义了将name
和author
字段放在同一行显示。
示例
下面通过一个具体的例子来演示xadmin的使用。
示例:图书管理
我们定义一个Book模型,包括图书名称和作者两个属性,其操作可以分为增删改查四个部分。
1. 创建模型
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=30)
author = models.CharField(max_length=30)
def __str__(self):
return self.name
class Meta:
verbose_name_plural = "书籍"
定义完成后,将其注册到xadmin。
import xadmin
from .models import Book
@xadmin.sites.register(Book)
class BookAdmin:
pass
2. 查看功能
为了查看图书的详细信息,我们需要添加list_display属性,指定需要显示的字段。
class BookAdmin:
list_display = ['id', 'name', 'author']
之后查看后台就可以看到id、name、author三个属性的列。
3. 添加功能
为了添加图书,我们需要在xadmin的后台页面点击「+添加」,跳转到添加页面,进行相应信息的填写。
class BookAdmin:
list_display = ['id', 'name', 'author']
fields = ['name', 'author']
以上代码定义了BookAdmin后台管理界面新增图书时,需要提供哪些字段的输入框。此时,添加页面上会显示名称和作者两个输入框,可以对它们进行输入并保存。
4. 编辑功能
用户可以通过在list_display中设置编辑按钮,进入编辑页面来修改已有图书。
class BookAdmin:
list_display = ['id', 'name', 'author', 'edit']
def edit(self, obj):
return '<a href="/xadmin/book/%s/change/">编辑</a>' % obj.id
edit.short_description = '操作'
edit.allow_tags = True
以上代码设置了「操作」列,即编辑按钮。在 edit
方法中返回一个链接,这个链接跳转到编辑页面。
5. 删除功能
在xadmin中,我们可以通过自定义一个 action
来实现批量删除功能。
class BookAdmin:
list_display = ['id', 'name', 'author', 'edit']
actions = ['delete_selected']
def delete_selected(self, request, queryset):
queryset.delete()
delete_selected.short_description = '删除所选项'
以上代码定义了可以批量删除所选图书的 delete_selected
方法。用户在后台管理界面选择要删除的图书,点击「删除所选项」,执行删除方法即可实现批量删除。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django xadmin安装及使用详解 - Python技术站