django -用户操作和管理员操作的不同保存方法

vltsax25  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(126)

我有一些与用户关联的项目。
当添加每个项目时,通过继承auto_now字段上的BaseModel创建时间戳。
当我添加新字段并填充时,我错误地更新了时间戳。
我在django中用一些自定义迁移和复制数据的方法解决了时间戳问题。
我想知道的是-有没有可能覆盖admin上的保存方法,只做update_fields(换句话说,我不会更新update_at timestamp),而在用户操作上,我想保留原来的django保存方法,它会更新timestamp。
那么基本上有没有可能有两种不同的保存方法呢?
我知道我可以覆盖save方法-但我不知道我是否可以同时拥有两个save方法。

x7yiwoj4

x7yiwoj41#

ModelAdmin.save_model()可能会为您提供此功能。

class ObjectAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.save(update_fields = ['fields', 'to', 'save'])

从django的github来看,save_model的super除了调用obj.save()之外,没有做更多的事情,所以我认为在这种情况下不需要或者不想调用super()。

相关问题