当前位置: 首页 > 面试题库 >

Django中的dirty字段

南宫海超
2023-03-14
问题内容

在我的应用程序中,当保存模型时,我需要保存更改的值(旧值和新值)。任何示例或工作代码?

我需要这个来预审内容。例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们。


问题答案:

您还没有对您的特定用例或需求说太多。特别是,了解更改信息(需要存储多长时间?)将很有帮助。如果仅出于临时目的而存储它,@
S.Lott的会话解决方案可能是最好的。如果要对存储在数据库中的对象的所有更改进行完整的审核跟踪,请尝试使用此AuditTrail解决方案。

更新
:我上面链接到的AuditTrail代码是最接近适合您的情况的完整解决方案的代码,尽管它有一些限制(对于ManyToMany字段根本不起作用)。它将对象的所有先前版本存储在数据库中,因此管理员可以回滚到任何先前版本。如果您希望更改在获得批准之前不生效,则需要使用它。

您还可以基于@Armin
Ronacher的DiffingMixin之类的内容来构建自定义解决方案。您将diff字典(可能是腌制的?)存储在表格中,以便管理员稍后查看并根据需要应用(您需要编写代码以获取diff字典并将其应用于实例)。



 类似资料:
  • 问题内容: 在我的应用程序中,当保存模型时,我需要保存更改的值(旧值和新值)。任何示例或工作代码? 我需要这个来预审内容。例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们。 问题答案: 区别在于(除了名称之外)它仅缓存本地非关系字段。换句话说,它不缓存父模型的字段(如果存在)。 还有一件事;你需要在保存后重设字典。但是我不想覆盖方法,因为在大多数情况

  • java-dirty 是一个快速的基于文件的对象存储系统,只能往存储里添加对象,使用内存映射文件技术。 示例代码: Store<Foo> store = Store.of(Foo.class).from("/path/to/file");store.put(new Foo(1,2));store.all().forEach(System.out::println);store.reverse().

  • 本文向大家介绍Django中FilePathField字段的用法,包括了Django中FilePathField字段的用法的使用技巧和注意事项,需要的朋友参考一下 class FilePathField(path=None[, match=None, recursive=False, max_length=100, **options]) 一个 CharField ,内容只限于文件系统内特定目录下

  • 问题内容: 我想要有关一个字段值的其他字段。为此,我构建了一个自定义管理表单以添加一些新字段。 与jacobian 1的博客文章相关,这是我想出的: 但是其他字段“ foo”不会显示在管理员中。如果我像这样添加字段,则所有工作都很好,但没有按要求动态化,以添加有关模型的另一个字段的值的字段 那么,有没有我必须再次触发以使新字段起作用的初始化方法?还是有其他尝试? 问题答案: 这是解决问题的方法。感

  • 问题内容: 为什么我应该或不应该使用Dirty reading: 在SQL Server中? 问题答案: 从MSDN: 设置此选项后,可以读取未提交的数据或脏数据。在事务结束之前,可以更改数据中的值,并且行可以在数据集中显示或消失。 简而言之,当您使用这种隔离级别,并且作为一个事务的一部分在活动表上执行多个查询时,不能保证在事务的不同部分中返回给您的信息将保持不变。您可以在一个事务中两次查询相同的

  • 问题内容: 在我的模型中,我想要一个包含三联列表的字段。例如。是否存在可以将这些数据存储在数据库中的字段? 问题答案: 你可以使用JSON将其转换为字符串并将其存储为字符串。 例如, 你可以在类中添加方法以自动为你转换。