Django:模型实例历史记录

2024-01-01

在我的项目中,我必须处理上传的文件,并且我想拥有每个文件版本的历史记录。并在一个视图中显示历史记录。 在我的模型中,每个文件都有一个版本、名称和路径。该文件通过一对多关系与其他类“A”相关。 我想要一种更新功能来替换以前的文件,并且我还想要访问具有文件及其相关模型实例(A 类)的所有特征的历史记录。

我不知道该怎么办。我听说过 django reversion 和 django revisions。 你对我有什么建议?

谢谢


您可以通过几种方式做到这一点:

1.您可以拥有一个手动跟踪它的文档文件模型。

class DocumentFile(CachedModel):
   content_type    = models.ForeignKey(ContentType, null=True, blank=True)
   object_id       = models.PositiveIntegerField(null=True, blank=True)
   content_object  = generic.GenericForeignKey(ct_field='content_type', fk_field='object_id')       
   file = models.FileField(upload_to= wherever )
   version = models.PositiveIntegerField(default=1)

   class Meta:
        db_table = 'document_file'
        verbose_name = 'Document File'
        unique_together = ('document', 'version')

您可以有一个名为 new_version 的 post_save 信号,并更新文档上的当前修订号

2.您甚至可以使用亚马逊的s3来存储文档,并通过修订号访问它,并向其传递修订号的get参数(这是一种成本更高的方法)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django:模型实例历史记录 的相关文章

  • Django 在 TabularInline 视图中禁用编辑(但允许添加)

    我想禁用编辑特定 TabularInline 实例中的所有对象 同时仍然允许添加并仍然允许编辑父模型 我有这个简单的设置 class SuperviseeAdmin admin TabularInline model Supervisee
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • Django 响应总是用 text/html 分块无法设置内容长度

    在我的Django应用程序的views py中 我在尝试设置以下HTTP标头字段后返回一个HttpResponse对象 Create a Response Object with the content to return response
  • Serializers.StringRelatedField 的读/写等效项是什么?

    在 Django Rest Framework 3 中 我想返回 pk 关系的 unicode 值 就像使用 serializer StringRelatedField 一样 但我也需要该值可写 StringRelatedField 是只读
  • 在 Django 中定期运行一个函数

    我在 Django 中编写一个应用程序来监视一组服务器中的某些服务 我希望定期更新观点 到目前为止 我已经研究过编写自定义管理命令 链接在这里 http docs djangoproject com en dev howto custom
  • 为什么当我运行“python manage.pysyncdb --all”时会出现此错误?

    我正在尝试应用教程http docs django cms org en 2 1 3 getting started tutorial html http docs django cms org en 2 1 3 getting start
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • Django - 使用静态文件的奇怪行为

    我是姜戈的新手 我试图理解静态文件 css 和图像 发生了什么而变得疯狂 问题的简历如下 当我使用来自第三方应用程序 Haystack 的静态视图时 我无法使用静态文件 我的项目有这样的目录结构 1001empbr name of the
  • 石墨烯错误消息

    我想知道是否可以翻译石墨烯提供的验证错误消息 例如 未提供身份验证凭据 如下面的代码示例所示 errors message Authentication credentials were not provided locations lin
  • nginx 获取静态文件失败,返回 404

    我现在正在 ubuntu 12 上部署带有 nginx 和 Gunicorn 的 django 应用程序 我配置nginx虚拟主机文件如下 server listen 80 server name mydomain com access l
  • Django 管理员更改用户密码

    我是 Django 新手 我有以下代码 Model class MyUser AbstractUser profile models OneToOneField Profile null True on delete models PROT
  • django 密码重置功能中出现 NoReverseMatch 错误

    我正在尝试在 django 中实现密码重置功能 下面是我的代码 urls py urlpatterns patterns url r signup accounts views signup name signup email url r
  • 如何在 django-rest-framework 查询集响应中添加注释数据?

    我正在为查询集中的每个项目生成聚合 def get queryset self from django db models import Count queryset Book objects annotate Count authors
  • 在 Django 中使用 path() 找不到 404

    我刚刚查看 django 并尝试通过视图列出书籍id作为 URL 的参数books urls py 但出现 404 页面未找到错误 当我在浏览器中输入此网址时 我没有发现网址有什么问题 http 192 168 0 106 8000 boo
  • Django查询集基于外键值的特定顺序

    对于棒球网站 我有两个模型 位置模型和球员模型 位置被命名为投手 捕手 一垒 二垒 三垒等 class Position models Model name models CharField max length 100 slug mode
  • App Engine 上的 Django 与 webapp2 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Django - 在长时间处理期间显示加载消息

    我怎样才能显示请稍等从 django 视图加载消息 我有一个 Django 视图 需要花费大量时间对大型数据集执行计算 当进程加载时 我想向用户呈现一条反馈消息 例如 旋转加载动画 gif 或类似消息 在尝试了布兰登和穆拉特提出的两种不同方
  • django-rest-framework - POST 请求返回“不允许使用方法\”GET\”。”

    我已经按照安装教程设置了 django rest auth 但我无法使用登录 API 端点 当我发送包含正确信息的 POST 请求时 我收到 405 状态错误 响应为 不允许方法 GET 但是 当我导航到实际 URL 并从在线表单发布它时
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM

随机推荐

  • 有没有一种方法可以在不发送测试邮件的情况下测试电子邮件地址是否存在? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在不发送电子邮件的情况下检查电子邮件地址是否存在 https stackoverflow com questions 565504 how to check if an email address
  • Windows Azure 多重部署

    这是场景 太多的网站具有相同的源代码和自己的数据库 每个客户都有自己的系统和自己的数据库 但所有客户都使用相同的源代码 我只有一个 TFS 项目 因为所有客户都使用相同的代码 不是物理上的 因为我必须在每个网站上部署到每个客户 问题 我如何
  • 运输例外

    我正在尝试导入 happybase 但在连接时收到以下错误消息 我已经运行了 Hadoop 伪节点集群和 Hbase 安装的组件版本如下 Hadoop 版本 1 0 4 Hbase 版本 0 94 4 快乐基地 0 4 有人可以查看下面的例
  • R 编程:自动合并字符串

    我正在尝试自动化这里工作的一些系统 专门用于根据调查数据生成报告 假设我对 1 个问题有 3 条评论 current comments lt c too slow not fast enough bad speed 基本上我想要做的是将注释
  • 如何从 servlet 调用 EJB 3.1 非零参数构造函数?

    我有一个 login java servlet 正如其名称所示 它为我的 Web 应用程序提供登录功能 我是一名新手 正在使用 EJB 3 1 和 EE 6 在我的 LoginBean java EBJ 中 我有一个无参数构造函数和另一个具
  • 在android中动态创建活动

    android 如何从 android 清单文件注册一个活动 以便它出现在包管理器中 我确实明白这是在安装应用程序时完成的 有没有办法调整 android 源代码来创建 API 来动态创建和注册活动 android如何从android清单文
  • 以计数作为标签的 2D 摘要图

    我有一个数量的测量值 value 在特定点 lon and lat 如下面的示例数据 library ggplot2 set seed 1 dat lt data frame lon runif 1000 1 15 lat runif 10
  • 有没有办法在 Swift 中重写数组到字符串的转换?

    我正在尝试使用 Swift 让它看起来更 动态类型 只是为了好玩 没有预期的生产价值 现在我陷入了将内置类型转换为的覆盖行为String 例如 我想看到这个输出Array let nums 1 2 3 print nums I m an a
  • 码头工人。没有这样的文件或目录

    我有一些文件 我想将它们移动到 Docker 容器中 但最后 docker 找不到文件 本地计算机上包含文件的文件夹位于 home katalonne flask4 文件结构如果重要的话 The Dockerfile First Flask
  • 如何根据两个不同活动中其他旋转器的位置来更改旋转器的位置

    我在两个不同的活动中有两个 Android 微调器下拉列表 但是两个微调器都具有来自同一源的相同数据 我想根据第一个活动的位置更改第二个活动的位置 如何解决此问题 更新的代码 第一个活动 public class ServiceReques
  • 发送带有正文的 Angular $http.delete

    在我的 Angular 应用程序中 我需要发送 http delete请求这条路线 projects id activityTypes 注意它不以活动类型 ID 结尾 传递具有以下格式的正文 id 2 这是为了允许通过发送数组内的多个对象来
  • 如何在react.js中使用Enter键提交表单?

    这是我的表单和 onClick 方法 我想在按下键盘的 Enter 按钮时执行此方法 如何 N B 没有jquery被赞赏 comment function e e preventDefault this props comment com
  • 如何有效地将字符串与一组通配符字符串进行匹配?

    我正在寻找一种将单个字符串与一组通配符字符串进行匹配的解决方案 例如 gt gt gt match ab a b c b a b 输出的顺序并不重要 我将按照 10 4 个通配符字符串的顺序进行匹配 并且我将进行大约 10 9 个匹配调用
  • python 中“itertools.combinations”的计算复杂度是多少?

    itertools combinationspython 是一个强大的工具 可以找到所有组合r但是 我想了解它的条款计算复杂度 假设我想知道以下方面的复杂性n and r 当然它会给我所有r列表中的术语组合n terms 根据官方文档 这是
  • 使用 Excel 在 WCF mex Moniker 上调用方法时出现自动化错误

    我成功创建了一个服务名字作为我的 WCF 服务的客户端 但我无法调用该名字的任何方法 在WCF服务端我有一个名为TestMethod的虚拟方法 如下所示 Public Function TestMethod ByVal TestValue
  • kubernetes 中的 MySQL 路由器作为服务

    我想在 Kubernetes 中部署 MySQL router 作为服务 我的计划 在 k8 内部署 MySQL router 并使用以下命令将 MySQL router 作为服务公开LoadBalancer 金属LB 在 k8 内运行的应
  • $sce.trustAsHtml 与 ng-bind-html

    为什么我不能这样做 div data htmlfilterexample div 当我在过滤器内返回时 return sce trustAsHtml input Using div div 无论过滤器是否返回都有效input or sce
  • Java - CompareTo 和运算符

    如果我有课Person实现Comparable 比较personA height to personB height 例如 是否可以使用 personA lt personB 作为替代品 personA compareTo personB
  • 在 Marionette 中从一个区域切换到另一个区域时,视图渲染不正确

    我正在与Marionette我有以下问题 我创建了一个包含两个不同区域的布局 在initialize该布局在布局的两个区域中加载两个视图 说ViewA and ViewB 之内ViewA一个事件被触发 该事件由布局消耗以进行切换 并注入其他
  • Django:模型实例历史记录

    在我的项目中 我必须处理上传的文件 并且我想拥有每个文件版本的历史记录 并在一个视图中显示历史记录 在我的模型中 每个文件都有一个版本 名称和路径 该文件通过一对多关系与其他类 A 相关 我想要一种更新功能来替换以前的文件 并且我还想要访问