Django后台管理复杂模型

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客

《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com)

Django框架创建后台管理员账户-CSDN博客

在Django后台管理模块中,使用admin.site.register()注册方式还可以管理更加复杂的自定义模型。下面,我们在7.3节实例的基础上稍加修改,完成一个复杂模型的后台管理(Admin)应用测试。

首先,在userinfo应用下新创建一个模型Dep,仅包括一个简单的名称(name)字段。然后,修改一下模型Person,新建一个模型Dep的外键(dep)字段,具体代码如下:

【代码7-3】(详见源代码MyAdminSite项目的userinfo/models.py文件)

01  from django.db import models
02  
03  # 在此处创建模型
04  
05  # Model Dep(Department)
06  class Dep(models.Model):
07      name = models.CharField(max_length=16)
08  
09      def __str__(self):
10          return self.name
11  
12  # Model Person
13  class Person(models.Model):
14      name = models.CharField(max_length=32)
15      age = models.IntegerField(default=0)
16      dep = models.ForeignKey(Dep, on_delete=models.CASCADE,)
17  
18      def __str__(self):
19          return self.name

【代码分析】

在第01行代码中,通过import关键字引入models模块。

在第06~10行代码中,创建了一个模型Dep,继承自models.Model模型类,详细说明如下:

  • 在第07行代码中,创建了一个CharField类型的name字段属性。

在第13~19行代码中,创建了一个模型Person,继承自models.Model模型类,详细说明如下:

  • 在第14行代码中,创建了一个CharField类型的name字段属性。
  • 在第15行代码中,创建了一个IntegerField类型的age字段属性,默认值为0。
  • 在第16行代码中,创建了一个ForeignKey外键,外键类型定义为模型(Dep)。注意,on_delete属性必须定义,这是Django 3.0+版本新增的规范。

通过后台管理界面管理该复杂模型,还是要使用admin.site.register()方法将数据模型注册到后台管理模块中,具体代码如下:

【代码7-4】(详见源代码MyAdminSite项目的userinfo/admin.py文件)

01  from django.contrib import admin
02  from .models import Dep, Person
03  
04  # 在此处注册模型
05  admin.site.register([Dep, Person])

【代码分析】

在第01行代码中,通过import关键字引入admin模块。

在第02行代码中,通过import关键字从模型中引入了Dep和Person模型。

在第05行代码中,通过调用admin.site.register()方法同时完成将Dep和Person模型注册到后台管理模块的操作。

最后,刷新一下浏览器中的后台管理界面,具体页面效果如图7.10所示,后台管理模块界面中添加了刚刚创建的模型Dep。

图7.10  管理复杂模型

为了更好地演示界面效果,可以通过Python交互界面在模型Dep和模型Person中添加一些用户数据,具体代码如下:

>>>from userinfo.models import Dep, Person
>>>dep=Dep(name=’IT’)
>>>dep.save()
>>>p=Person(name=’cici’,age=7,dep=dep)
>>>p.save()

返回图7.10中的Dep和Person模型,分别单击该链接会跳转到相应数据表的可编辑页面,效果如图7.11和图7.12所示,刚刚添加的用户数据已经在页面上显示出来了。

我们可以尝试单击图7.12中的用户信息cici链接,会跳转到该条用户信息的可编辑页面。效果如图7.13中的箭头和标识所示,在该条Person模型的用户信息中,可以清楚地查看到Dep模型类型的外键。

图7.11  Dep模型可编辑页面效果

图7.12  Person模型可编辑页面效果

图7.13  用户信息可编辑页面效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/426687.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

libyuv之linux编译

文章目录 一、下载源码二、编译源码三、注意事项1、银河麒麟系统(aarch64)(1)解决 armv8-adotprodi8mm 指令集支持问题(2)解决 armv9-asve2 指令集支持问题 一、下载源码 到GitHub网站下载https://github.…

荣誉 | 分贝通入选2024「Cloud 100 China」

近日,2024 Cloud 100 China 榜单于美高梅酒店正式发布,这是靖亚资本和崔牛会联合推出的第三届榜单。 全球商旅管理、企业支出全流程管控、数据BI全方位降本、AI赋能高效出行体验.......近年来,分贝通不断精进产品能力及BI&AI能力,再次上榜。 本届评选,组委会基于过去一年融…

从HarmonyOS升级到HarmonyOS NEXT-环信SDK数据迁移

前言:2024年6月21日 HarmonyOS NEXT (后续称之为 NEXT) 正式发布,随着 NEXT 稳定版的逐渐临近,各个应用及SDK正在忙于适配 NEXT 系统,同样也面临着系统升级时如何对数据的迁移适配。本文通过使用环信 SDK 介…

Unity 高亮插件HighlightPlus介绍

仅对官方文档进行了翻译 注意:官方文档本身就落后实际,但对入门仍很有帮助,核心并没有较大改变,有的功能有差异,以实际为准.(目前我已校正了大部分差异,后续我会继续维护该文档) 为什么为该插件做翻译?功能强大,使用简单,且还在维护. 基于此版本的内置渲染管线文档 快速开始…

深度剖析去中心化存储:IPFS、Arweave 和 BNB Greenfield 的技术革新与生态系统演进

引言: 在数字时代的浪潮中,数据已然成为驱动创新和决策的核心资产。然而,随着数据量呈指数级增长,传统中心化存储模式面临着前所未有的挑战。安全漏洞、隐私泄露、数据垄断等问题日益凸显,促使技术界重新思考数据存储…

Html css样式总结

1.Html css样式总结 1.1. 定位position 布局是html中非常重要的一部分,而定位在页面布局中也是使用频率很高的方法,本章节为定位在布局中的使用技巧和注意事项。   position定位有4个属性,分别是static(默认),absol…

【C盘清理】Pycharm远程调试重度使用者C盘清理

文章目录 1 remote source 1 remote source 找到本地的这个路径C:\Users\verse\AppData\Local\JetBrains\PyCharm2022.3\remote_sources 这个文件夹是 PyCharm 在进行远程调试时使用的,它包含了远程服务器上的源代码副本。当你在 PyCharm 中设置远程调试并启动调试会…

[yotroy.cool] MGT 388 - Finance for Engineers - notes 笔记

个人博客https://www.yotroy.cool/,感谢关注~ 图片资源可能显示不全,请前往博客查看哦! ============================================================ Lecture 1 What is Accounting? The process of identifying, measuring and communicating economic informati…

docker容器中的内存占用高的问题分析

文章目录 问题描述原因分析分析1分析2验证猜想 结论和经验 问题描述 运维新增对某服务的监控后发现:内存不断上涨的现象。进一步确认,是因为有多个导出日志操作导致的内存上涨问题。 进一步的测试得出的结果是:容器刚启动是占用内存约为50M…

OceanBase 运维管理工具 OCP 4.x 升级:聚焦高可用、易用性及可观测性

可视化的管控平台,对 OceanBase 这类的分布式数据库及大规模数据的运维管理来说,是提升运维效率与数据库管理水平的重要工具。OceanBase 运维管理工具 OCP 作为专为OceanBase数据库设计的企业级全生命周期管理平台,为用户提供了全面的数据库可…

日志框架的使用

一、日志概述 日志:用来记录程序运行过程中的信息,并可以进行永久存储。 开发过程中可能会出现以下需求: 希望系统能记住某些数据是被谁操作的,比如被谁删除了?想分析用户浏览系统的具体情况,以便挖掘用…

我的AI工具箱Tauri版-FasterWhisper音频转文本

本教程基于自研的AI工具箱Tauri版进行FasterWhisper音频转文本服务。 进入软件后可以直接搜索 FasterWhisper 或者依次点击 Python音频技术/音频tools 进入该模块。 进入目录后需要进行一些基础配置,参数是默认的可以根据自己的机器进行一些简单的参数操作。 使用方…

【ViT+Dis】Deepfake Detection Scheme Based on Vision Transformer and Distillation

文章目录 Deepfake Detection Scheme Based on Vision Transformer and Distillationkey points深伪检测检测算法蒸馏法与教师网络实验训练:参数总结Deepfake Detection Scheme Based on Vision Transformer and Distillation 会议:2021 作者: key points 以往基于CNN结…

江科大笔记—软件安装

安装Keil5 MDK 资料下载:https://jiangxiekeji.com/download.html 密码:32 是否安装ULINK驱动,点击是 安装器件支持包 离线安装和在线安装 离线安装 在线安装 联网更新 软件的支持包目录已经更改,是否要重新加载支…

【算法】滑动窗口—最小覆盖子串

题目 ”最小覆盖子串“问题,难度为Hard,题目如下: 给你两个字符串 S 和 T,请你在 S 中找到包含 T 中全部字母的最短子串。如果 S 中没有这样一个子串,则算法返回空串,如果存在这样一个子串,则可…

单细胞BCR的分析Dandelion重注释的安装以及用法----11111

今天来学习下这个新的方法,主要是针对单细胞BCR 首先安装singularity Singularity 是一种容器化技术,类似于 Docker,专为高性能计算(HPC)和科学研究领域的需求设计。它允许用户在不同环境中运行和移植应用程序&#x…

免费PDF工具集套装,支持批量

软件介绍 PDFgear 支持多种与 PDF 相关的操作,包括但不限于编辑、转换、合并和签署 还支持批量操作,支持批量转换功能,可以将 PDF 文件转换为多种格式,包括 Word、Excel、PowerPoint、图像甚至电子书等。 下载方式 请看文章尾部…

虚拟机vaware中cpu设置跑满大核

首先,大核速度快,并且在资源紧张时大核优先,小核甚至是闲着围观大核跑满。其次,遇到经常切换操作虚拟机和win11的使用场景,切换核心本身也会造成一点卡顿,降低虚拟机里操作流畅度。另外,13代在你…

【软件测试】自动化测试常用函数 二

目录 🌴等待 🚩强制等待 🚩隐式等待 🚩显示等待 🌳浏览器导航 🌲弹窗 🚩警告弹窗确认弹窗 🚩提示弹窗 🎄上传文件 🍀浏览器参数设置 &#x1f6a9…

浅显易懂的Git教程

Git概述 SVN与Git的对比 SVN(Subversion) 类型:集中式版本控制系统 工作流程: 从中央服务器下载最新版本到本地。在本地进行开发。提交更改回中央服务器。 优点: 简单易用,适合小型团队。版本历史清…