gpt4 book ai didi

django - 保存模型时未创建新修订

转载 作者:行者123 更新时间:2023-12-04 04:39:16 25 4
gpt4 key购买 nike

我使用 Reversion控制模型对象的变化。在 documentation我发现了这个:

Whenever you call save() on a model within the scope of a revision, it will be added to that revision

这是我使用模型的保存方法的代码:

c.save(update_fields=['status'])

执行此代码时,对象的修订列表中没有新记录,至少我没有在管理中看到它。

最佳答案

我有一个类似的问题,在管理界面中所做的编辑有回滚,但在 shell 中没有。

@yilmazhuseyin 是正确的,你需要上下文包装器,但我发现我有一个额外的错误,我的模型没有被注册。

admin.py 中:

class YourModelAdmin(reversion.VersionAdmin):
pass

admin.site.register(YourModel, YourModelAdmin)

将注册您的模型,但前提是调用管理代码。当我通过 python manage.py shell

调用 shell 时,它没有被调用

因此,为了解决这个问题,我添加到 models.py

import reversion
reversion.register(YourModel)

然后当我保存一个对象时,我仍然需要使用上下文包装器

 with reversion.create_revision():
obj.save()

更新:

Revision 针对这种情况提供了一些提示。 ( http://django-reversion.readthedocs.org/en/latest/api.html#api ) 一种是简单地导入您的管理模块,以便调用修订。

关于django - 保存模型时未创建新修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19181092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com