首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在django-simple-history中引用history_list_display中的外键?

在django-simple-history中,可以通过以下步骤引用history_list_display中的外键:

  1. 首先,确保你已经安装了django-simple-history库,并在你的Django项目中进行了配置。
  2. 在你的models.py文件中,定义包含外键的模型。例如,假设你有两个模型:Book和Author,其中Book模型有一个外键指向Author模型。
代码语言:txt
复制
from django.db import models
from simple_history.models import HistoricalRecords

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    history = HistoricalRecords()
  1. 在admin.py文件中,注册Book模型,并自定义ModelAdmin类来配置history_list_display。
代码语言:txt
复制
from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author')
    history_list_display = ['author']

admin.site.register(Book, BookAdmin)

在上述代码中,我们定义了一个BookAdmin类,并将其作为第二个参数传递给admin.site.register()函数。在BookAdmin类中,我们指定了list_display属性来定义在admin界面中显示的字段列表。同时,我们还使用history_list_display属性来指定在历史记录中显示的外键字段。

  1. 保存并运行你的Django应用程序。现在,当你在admin界面中查看Book模型的历史记录时,你将看到外键字段(author)的历史记录。

需要注意的是,以上步骤是基于django-simple-history库的使用。该库提供了一个简单的方法来跟踪和记录模型的历史记录。如果你想了解更多关于django-simple-history的信息,可以参考腾讯云的Django简史文档:https://cloud.tencent.com/document/product/1130/46174

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django 引用另一个表多个字段

在 Django (ForeignKey)通常只引用另一张表一个字段,比如一个主键或一个唯一标识字段。然而,如果我们需要让一个引用另一张表多个字段,通常有以下几种方法来实现这种关系。...1、问题背景在 Django ,模型之间关系通常使用(ForeignKey)来建立。允许一个模型字段引用另一个模型主键。然而,有时我们需要在一个模型引用另一个模型多个字段。...例如,我们有一个 product_models 表,其中包含产品信息,产品名称、价格和描述。...我们还有另一个 sales_process 表,其中包含销售过程信息,潜在客户、员工、首次联系时间等。...以下是如何在 Django 中使用复合主键来实现引用另一个表多个字段:在 product_models 模型,添加一个 id 字段作为主键:class product_models(models.Model

000
  • laravel5.6约束示例

    场景 如果现在有两张表,一张表是文章表articles,一张表是分类表categories,其中在文章表中有一个分类字段category_id,现在想在删除分类表某一分类时,该分类下所有文章也一起被删除...,那么这时候就可以用到外约束 具体用法如下: 给文章表添加约束 $table- unsignedInteger('category_id')- comment('文章所属分类|select');...$table- foreign('category_id')- references('id')- on('categories')- onDelete('cascade'); 其中需要注意是分类表categories...主键字段id与文章表articles字段category_id数据类型或者是数据长度要保持一致,因为作为主键id值是从1开始自增,所以在被其绑定字段数据类型就不能使用integer...,而要改用unsignedInteger 以上这篇laravel5.6约束示例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.7K31

    django在开发取消约束实现

    # 在setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...,删除外关系 反查: 在表关系里 related_name = ‘反查name’,自己不设置,django也会默认设置为class小写名字+_set , ex: book_set....一对一关系赋值: class ModelStudy(View): ''' ClassRoom和ClassNumber是一对一关系,给传值 ''' def get(self, request):...(数据库字段名字room_number_id)值,将相对应值直接赋值给该字段      class_number = ClassNumber.object.get("id=1").room_number...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发取消约束就是小编分享给大家全部内容了,希望能给大家一个参考。

    3.7K10

    何在keras添加自己优化器(adam等)

    2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

    45K30

    MySQL约束与数据完整性详解

    约束基本概念约束是一种数据完整性约束,它确保一个表(子表)某列(或多列)引用另一个表(父表)主键(或唯一)。通过约束,MySQL可以保证数据引用完整性,避免出现孤立记录。...创建约束示例假设我们有一个简单数据库,用于管理学生和课程信息。我们将创建两个表:students和courses,并在students表定义引用courses表。...course_id为引用courses表course_id列。...,子表引用该记录所有行也会被自动删除。...ON UPDATE CASCADE:当父表记录被更新时,子表引用该记录所有行键值也会被自动更新。实际案例分析一、项目背景假设我们正在开发一个学校管理系统,该系统需要管理学生信息和课程信息。

    4400

    Django学习-第七讲:django 常用字段、字段属性,和表关系、操作

    和表关系 在MySQL,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用是InnoDB引擎,是支持约束存在使得ORM框架在处理表关系时候异常强大。...第一个参数是引用是哪个模型,第二个参数是在使用引用模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等。这里以一个实际案例来说明。...一个Category可以有多个文章,一个Article只能有一个Category,并且通过进行引用。...在论坛开发,一般评论都可以进行二级评论,即可以针对另外一个评论进行评论,那么在定义模型时候就需要使用引用自身 class Comment(models.Model): content...即只要这条数据引用那条数据,那么就不能删除外那条数据。 3.SET_NULL:设置为空。如果那条数据被删除了,那么在本条数据上就将这个字段设置为空。

    4K30

    MySQL创建错误:1215 Cannot add the foreign key constraint

    引言: MySQL中经常会需要创建父子表之间约束,这个约束是需要建立在主外基础之上,这里解决了一个在创建主外约束过程碰到一个问题。 1....碰到错误 在创建之时,使用SQL和碰到错误信息如下: alter table `product' add CONSTRAINT `sid_ref` FOREIGN KEY (`sid`)...REFERENCES `sealer` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION 碰到错误信息如下: 无法正确插入约束。...解决办法 修改product.sid数据类型,添加unsigned和字段长度,将其设置为相同即可。 5....总结 之所以出现1215问题,是由于主外之间数据类型不一致造成,以后类似问题,皆可按此处理。

    2.5K50

    【Django 2.2文档系列】Model on_delete参数用法

    场景 我们用DjangoModel时,有时候需要关联。关联时,参数:on_delete几个配置选项到底是干嘛呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...比如:用户有一个关联是用户健康记录表,当用户删除时,配置了这个参数健康记录表中跟这个用户有关数据也会被删除。...” models.PROTECT 防止删除引用对象。与上个恰恰相反,是防止关联数据被删除。 models.SET_NULL 设置关联内容为null。只有设置了null=True时可用。...当数据被删除时,被关联内容被设置为null。 models.SET_DEFAULT 将值设置为默认值。必须设置有默认值 。...如果后端数据库有强制关联操作,这是容易报错:IntegrityError,除非你在数据库手动添加了SQLON DELETE约束。

    2K10

    删除数据库未指定名称存储过程

    数据库某个表A,因为业务原因被移到别的库。麻烦是,有几张子表(B, C, D等)建有指向它,而且在创建时没有指定统一键名。...如此一来,在不同环境(开发、测试、生产等)名称不一样,必须逐个去查询键名再进行删除,十分不便。...为此,特地编写了一个存储过程,只须指定子表名(B,C,D)和列名,直接调用该存储过程即可。...Oracle存储过程代码如下: -- 删除指定表、指定列上(系统命名或未知名) CREATE OR REPLACE PROCEDURE DROP_FK(P_TABLE IN VARCHAR2,...: -- 删除指定表、指定列上(系统命名或未知名) CREATE OR REPLACE FUNCTION DROP_FK(P_TABLE IN VARCHAR, P_COLUMN IN VARCHAR

    1.3K10

    在django admin配置搜索域是一个处理方法

    会自动将该行数据以str()化之后进行搜索,但其实并不是这样,如果将加入到搜索域中,需要明确写出来。...,要注明哪个字段,双下划线 list_display = ('book', 'category') # 在页面上显示字段,若不设置则显示 models.py __unicode__(self...不应该只是一个model,而该是另一个表明确一个字段。 所以我们需要指定特定字段 “本表字段__所在表需查询字段”。...补充知识:Djangomodel中使用,但在页面上显示是xxx_object?...models.ForeignKey(A,on_delete=models.DO_NOTHING) def __str__(self): return self.name 以上这篇在django admin配置搜索域是一个处理方法就是小编分享给大家全部内容了

    3.8K20

    Django基表创建、字段属性简介、脏数据概念、子序列化

    两张表建立了一对一字段,在A表,那么先往B表写数据就更合理。...假设图书管理系统书、出版社、作者、作者详细信息四张表之间关系如下: """ 表关系 1)Book 和 Publish 一对多:在多一方 Book 2)Book 和 Author 多对多:在查询频率高一方...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外设置反向查询字段名:正向找字段名,反向找related_name...,将两张表设置为级联,并将反向查询字段名设置为detail 数据库脏数据介绍 数据库中常见并发操作所带来了一致性问题包括:丢失修改,不可重复读,读“脏”数据,幻读。...如果涉及到通过进行跨表查询,然后再将查询数据反序列化到前台就需要用到子序列化,比如下面的例子:我们查询出版社信息时候连带将book表该出版社所出版过书名一并查出来。

    4.3K30

    何在Kerberos环境CDH集群跨OS版本在指定目录配置HDFSGateway节点

    Faysongithub: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1 文章编写目的 在前面的文章Fayson介绍了《如何在CDH...集群配置非Kerberos环境Gateway节点》和《如何在CDH集群配置Kerberos环境Gateway节点》,本文档在这两篇文档本篇文章基础介绍如何在Kerberos环境CDH集群跨OS...版本在指定目录配置HDFSGateway节点。...CDH版本为5.12.1 2.操作系统为RedHat7.2和RedHat6.6 3.操作用户root 前置条件 1.Gateway节点与集群网络正常 2.集群已启用Kerberos 2 环境说明 集群节点...5 问题描述与解决 1.core-site.xml 文件找不到异常 ? 该问题是由于在CDHhadoop客户端配置默认是在/etc/hadoop目录下,确认软链无误,并且配置正确 ?

    1.3K20

    何在 MSBuild 中正确使用 % 来引用每一个项(Item)元数据

    MSBuild 写在 每一项是一个 Item,Item 除了可以使用 Include/Update/Remove 来增删之外,还可以定义其他元数据(Metadata)...使用 % 可以引用 Item 元数据,本文将介绍如何正确使用 % 来引用每一个项元数据。...---- 定义 Item 元数据 就像下面这样,当引用一个 NuGet 包时,可以额外使用 Version 来指定应该使用哪个特定版本 NuGet 包。..." Url="blog.walterlv.com" /> 引用元数据 引用元数据使用是 % 符号。...为了简单说明 % 用法,我将已收集到所有的元数据和它本体一起输出到一个文件。这样,后续编译过程可以直接使用这个文件来获得所有的项和你希望关心它所有元数据。

    29210

    SQL什么是主键和,它们之间区别是什么?

    SQL主键和:结论主键和是数据库设计重要概念,因为它们有助于建立表之间关系并帮助确保数据完整性。...一个主键可以唯一地识别一个表行,而一个则是通过引用相关表主键将两个表联系在一起。这里你应该注意最重要区别是,主键不能有NULL值,而外可以接受NULL值。...什么是是一个表一个列(或一组列),指的是另一个表主键。它被用来在两个表之间建立联系,并被用来在数据库执行参考完整性。基本上是一个表字段/列,类似于其他表主键。...与主键不同,一个表可以有一个以上。而且,在关系数据库可以包含重复值和空值。一个值可以从子表删除。...数据库主键和重要区别下表强调了主键和之间所有重要区别Key主键Basic它用于唯一地识别表数据。它用于维护表之间关系。Null它不可能是NULL。它可以接受NULL值。

    93240

    跳转引用、禅模式...VS Code 11 个快捷操作,让你效率与舒适度翻倍!

    跳转引用、禅模式...VS Code 11 个快捷/操作,让你效率与舒适度翻倍!...在本文之前,我们已经连续在两篇文章讨论了 VS Code 快捷: •你真的会用 VS Code Ctrl、Shift和Alt吗?...高效易用快捷:多光标、跳转引用等轻松搞定•VS Code Vim 操作 | 无需修改 VSC 默认快捷 | 常用组合与逻辑 本文我们继续讨论 VS Code 快捷。...实际上,相比前两篇文章,本文更加注重介绍“操作”,快捷不是重点,重点是功能探索与应用。 F12 跳转引用 ?...使用 F12 实现跳转 如上图: •F12 跳转到变量、函数、类定义处•Shift + F12 跳转到其引用处;多个引用时,可以选择具体哪个 reference 使用 F12 也可以跳转到环境库源码

    1.4K20

    Angular 2 前端 http 传输 model 对象及其外问题

    所以要解决问题: 避免数据级联加载,加载 N 多不需要数据 数据缓存,已存在无需再加载 数据引用一致,对于多个 detail 引用同一个 deviceType ,deviceType...单个规范,和列表规范,尤其是列表,存在很多 item 引用同一个情况。 一套规范和一个处理关联统一框架 规定,服务端对于,统一传 id 那么,数据,如何取得?...如何在减少服务端查询从而提升请求速度和服务端先加载数据,好减少客户端等待首次请求成功后发现本地没有缓存从而需要二次请求服务器造成 串行查询 等待时间更长?...应需要不同情况不同对待 ,对于热数据,设备类型、请假类型 等,很常用,但是数据量又小(即很适合缓存在前端),本地很可能已存在缓存情况下,服务端采用一种查询策略。...客户端还可相互配合,在请求某个 detail 时,因为需要类型已经知道,则前端框架可将本地以及查询/缓存过了 id 自动追加到这个 detail 请求头里面(因为是热数据,数据量也不会大,

    1K20
    领券