今天就跟大家聊聊有关在Django中使用Models实现自定义一个Admin后台,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
简介
效果预览
Django自带一个Admin后台, 支持用户创建,权限配置和所有模型的增删改查功能, 只需要一些简单的配置就可快速得到一个开箱可用的后台管理系统
操作步骤
1. 更改设置,使用中文/亚洲时区
修改项目下django_shop目录下的settings.py文件
修改以下三行
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_L10N = False
添加以下两行, 已更改时间显示格式
DATETIME_FORMAT = 'Y年m月d日 H:i:s'
DATE_FORMAT = 'Y年m月d日'
2. 为Models提供中文显示名称和实例名称#
修改项目shop目录下的models.py, 为每个模型添加meta信息和__str__方法
from django.db import models class Category(models.Model): ... class Meta: verbose_name_plural = verbose_name = "分类" # 该模型在后台显示的名称 def __str__(self): # 该模型每一个实例显示其name return self.name class Product(models.Model): ... class Meta: verbose_name_plural = verbose_name = "商品" def __str__(self): return self.name class Order(models.Model): ... class Meta: verbose_name_plural = verbose_name = "订单" def __str__(self): return "{}的订单".format(self.username) class OrderItem(models.Model): ... class Meta: verbose_name_plural = verbose_name = "订单条目" def __str__(self): return "{}订单条目".format(self.order)
3. 修改shop目录下的admin.py, 将模型注册到admin应用中
from django.contrib import admin from .models import Category, Product, Order, OrderItem admin.site.site_header = 'Django-Shop后台' admin.site.site_title = 'Django-Shop后台' class OrderItemInline(admin.TabularInline): # 建立内联表单, 用于将订单条目内嵌入订单的表单中 model = OrderItem @admin.register(Category) class CategoryAdmin(admin.ModelAdmin): fields = ('name', 'slug') list_display = ('name', 'slug') list_filter = ('name', 'slug') @admin.register(Product) class ProductAdmin(admin.ModelAdmin): fields = ('name', 'slug', 'category', 'price', 'available', 'description') # 详情表单包含的字段, 支持嵌套分组(将一行展示) list_display = ('name', 'category', 'price', 'available', 'created', 'updated') # 列表显示字段 list_filter = ('category', 'available') # 列表筛选字段 search_fields = ('name', ) # 列表可搜索字段 list_editable = ('price', 'available') # 列表可编辑字段 @admin.register(Order) class OrderAdmin(admin.ModelAdmin): fields = ('username', 'mobile', 'city', 'address', 'pay_status') list_display = ('username', 'mobile', 'city', 'pay_status', 'created', 'updated') list_filter = ('username', 'city', 'pay_status') search_fields = ('username', 'mobile') list_editable = ('pay_status', ) inlines = [OrderItemInline] # 嵌入订单条目内联表单
完成!!!
使用演示
添加订单及订单条目
订单列表
注: 本次只简单实现了将模型注册到admin后台中,以实现通过admin后台对模型进行增删改查的基本功能, 其他定制功能/插件及admin页面定制, 没有涉及.
看完上述内容,你们对在Django中使用Models实现自定义一个Admin后台有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。