Django Admin Cookbook-23如何在Django admin中添加嵌套的内联

23.如何在Django admin中添加嵌套的内联?

假设我们定义了以下模型:

class Category(models.Model):
    ...
class Hero(models.Model):
    category = models.ForeignKey(Catgeory)
    ...
class HeroAcquaintance(models.Model):
    hero = models.OneToOneField(Hero, on_delete=models.CASCADE)
    ...

你想拥有一个管理页面来同时创建Category、Hero和HeroAcquaintance对象。但是,Django不支持跨多个级别的外键或一对一关系嵌套内联。有以下几种处理方法,

我们可以更改HeroAcquaintance模型,使其直接外联到到Category,代码如下:

class HeroAcquaintance(models.Model):
    hero = models.OneToOneField(Hero, on_delete=models.CASCADE)
    category = models.ForeignKey(Category)
    def save(self, *args, **kwargs):
        self.category = self.hero.category
        super().save(*args, **kwargs)

然后,你可以附加HeroAcquaintanceInline内联到CategoryAdmin,并获得一种嵌套的内联。

另外,也有一些第三方Django插件允许嵌套内联。在Github或DjangoPackages中搜索可以快速将找到适合适合你需要的三方插件。

返回目录

原文地址:https://www.cnblogs.com/superhin/p/12186997.html

时间: 2024-10-03 22:40:16

Django Admin Cookbook-23如何在Django admin中添加嵌套的内联的相关文章

20170915-如何在jmeter'工具中添加压力机

jmeter中如何添加压力机1.谁的电脑要做压力机们就要把那台电脑的jmeter-server.bat(jmeter的bin文件目录下)启动2.两台电脑要能ping通3.在配置文件中加入这个ip:修改bin/jmeter.properties文件,搜索remote_hosts关键字,在关键字所在行后添加对方电脑的ip,用逗号","分割,末尾加上:默认端口号(#server_port=1099)      例如:remote_hosts=localhost:1099,10.165.124

如何在PDF文件中添加注释功能

PDF文件并不陌生,那么对PDF编辑与添加注释大家是否有了解过?编辑与加注释是不同的,PDF编辑文件是对内容进行编辑修改,能修改原文件中的内容:而添加注释则是在原文件上添加备注,对文件中的重点文字添加下划线等标记.下面分享如何在PDF文件中添加注释功能.   步骤: 1.首先我们可以百度搜索'悦书PDF阅读器',点击进入下载即可. 2.点击菜单栏'+'打开文件,或者直接把文件拖入到阅读器中即可打开.在打开界面中选择PDF文件并点击'打开'即可. 3.打开的PDF文件页面中,选择下方工具栏中的'注

大开测试:性能-如何在Analysis图表中添加分析注释(连载26)

7.26  如何在Analysis图表中添加分析注释 1.问题提出 Analysis提供了十分丰富的图表,我们可以借助这些图表分析系统的性能,为了使图表更加直观,方便专业及其非专业人事的阅读,提供分析注释是十分必要的,那么LoadRunner的Analysis提供这种功能了吗? 2.问题解答 LoadRunner提供了丰富的图表,通过这些图表可以供性能分析人员分析系统瓶颈,为了使自己和他人方便阅读分析结果,LoadRunner提供了在图表上添加注释信息的功能,下面以"Throughput - R

CAD技巧—如何在CAD图纸中添加文字

在日常的CAD制图过程中有的时候需要给编辑的CAD图纸进行添加一些文字标注,但是如何在CAD图纸中添加文字呢?具体应该怎么操作才能在CAD图纸中添加文字?下面小编就来教教大家在迅捷CAD编辑器标准版中如何在CAD图纸中添加文字,想要了解的朋友就一起来看看,下面就来教大家具体如何操作. 第一步:在浏览器中搜索迅捷CAD编辑器(标准版),进入迅捷CAD官网,点击下载安装最新版本的迅捷CAD编辑器,并双击打开该软件进入到编辑器的操作窗口. 第二步:进入到编辑器的操作窗口后,点击软件顶部最左侧菜单栏中的

如何在WordPress菜单中添加搜索框?

如何在WordPress菜单中添加搜索框?且不需要不使用任何WordPress插件. 想要达到这种效果只需按照以下步骤相同. 如何在WordPress菜单中添加搜索框: WordPress菜单中添加搜索框 打开functions.php文件,并在文件末尾的代码片段下面复制粘贴并保存.以下代码将自动将搜索框添加到主菜单栏. /** * Add searchbox in menubar */ add_filter( 'wp_nav_menu_items','add_search_box', 10,

django连接mysql数据库,往数据库表中添加字段

1.在数据库已经连接好,并激活的情况下 2.在models已经写好之后 3.对manage的操作: python manage.py validate   验证模型的有效性,validate 命令检查你的模型的语法和逻辑是否正确 python manage.py sqlall chapter3(项目名)   查看对应的sql语句,可以将其复制到mysql命令客户端,用于创建对应的表,也可以用命令执行: python manage.py syncdb  同步数据库,创建表 4.往对应模块添加字段对

如何在CentOS 7中添加新磁盘而不用重启系统

导读 对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一.因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器.关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种. 1. 在虚拟机客户端扩充磁盘空间: 在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere.VMware 工作站以及你使用的其它

转载:如何在wordpress主题中添加设置页面

将自己设计的题发布或是销售是一件很棒的事情,但并不是每一个主题使用者都有很熟练的HTML/CSS技巧.但是如果在主题中整合一个设置选项页面,就可以使那些完全不懂代码的用户能够很容易地根据他们的喜好来修改主题.下面我将告诉大家如何从零开始做一个最简单的主题选项页(下图为最终效果). 我们的最终目的是什么? 在开始之前,要先了解我们的最终目的是什么?我们主题可以自行定制哪些内容?这些是需要你在设计主题前就应该考虑好的. 每个主题都可以有很多的可编辑元素,本例中我将通过实现下面这三个方面的定制来说明如

如何在RCP程序中添加一个banner栏

前言:这段时间还算比较空闲,我准备把过去做过的有些形形色色,甚至有些奇怪的研究总结一下,也许刚好有人用的着也不一定,不枉为之抓耳挠腮的时光和浪费的电力.以前有个客户提出要在RCP程序中添加一个banner栏,研究了很久才搞定.代码是基于eclipse4.3.2的. 先看一下效果预览: 为了添加一个banner栏,我们必须重写RCP程序最外层的layout类,即TrimmedPartLayout.java.这个layout类是用来控制menu,toolbar等最基本的layout布局的.我们写一个