Python 在哪里检查Django Admin上是否有更改

Python 在哪里检查Django Admin上是否有更改,python,django-admin,django-rest-framework,Python,Django Admin,Django Rest Framework,我在Django rest框架上有一个模型,我需要在Django管理中每次更新该模型上的字段时进行检查,以便在另一个模型中进行更新 我如何以及在哪里可以检查它 谢谢@ssice是正确的,你可以利用它,还有类似的东西 或 如果是一次性的,您可以通过覆盖模型的\uuuu init\uuuu()和save()方法,为该模型使用自己的脏字段检查器。类似这样的情况(当然,根据您的需求,它可能会复杂得多): 小心 如果您使用modelupdate(),这些将不起作用,因为它不会触发django的save(

我在Django rest框架上有一个模型,我需要在Django管理中每次更新该模型上的字段时进行检查,以便在另一个模型中进行更新

我如何以及在哪里可以检查它


谢谢

@ssice是正确的,你可以利用它,还有类似的东西

如果是一次性的,您可以通过覆盖模型的
\uuuu init\uuuu()
save()
方法,为该模型使用自己的脏字段检查器。类似这样的情况(当然,根据您的需求,它可能会复杂得多):


小心


如果您使用model
update()
,这些将不起作用,因为它不会触发django的
save()
或相关信号。但是你说你想跟踪从管理站点所做的更改,所以我假设这不是问题

@ssice是对的,你可以利用它,还有类似的东西

如果是一次性的,您可以通过覆盖模型的
\uuuu init\uuuu()
save()
方法,为该模型使用自己的脏字段检查器。类似这样的情况(当然,根据您的需求,它可能会复杂得多):


小心


如果您使用model
update()
,这些将不起作用,因为它不会触发django的
save()
或相关信号。但是你说你想跟踪从管理站点所做的更改,所以我假设这不是问题

如果您只需要查看Django Admin change表单中的更改,您可以钩住ModelAdmin的
save_model()
方法

class YourAdmin(ModelAdmin):

    def save_model(self, request, obj, form, change):
        super().save_model(request, obj, form, change)
        # do what you have to do here
您可能还希望将其包含在事务中,以确保在其他操作失败时不会保存模型

class YourAdmin(ModelAdmin):

    @transaction.atomic
    def save_model(self, request, obj, form, change):
        super().save_model(request, obj, form, change)
        # do what you have to do here

如果您只需要查看Django Admin change表单中的更改,那么可以钩住ModelAdmin的
save_model()
方法

class YourAdmin(ModelAdmin):

    def save_model(self, request, obj, form, change):
        super().save_model(request, obj, form, change)
        # do what you have to do here
您可能还希望将其包含在事务中,以确保在其他操作失败时不会保存模型

class YourAdmin(ModelAdmin):

    @transaction.atomic
    def save_model(self, request, obj, form, change):
        super().save_model(request, obj, form, change)
        # do what you have to do here

您不应该使用Django信号或其他技术自动进行更新吗?每次有人进行API调用时手动更新模型似乎不是一个好主意。模型a仅由Django Admin更新。例如,当模型A的名称在Django Admin上更新时,我需要对模型B进行更新。因此,我只需要知道何时更新了我的更改,@ssiceAnyway,为什么不自动进行更新?此外,你应该在问题中添加所有这些信息。你不应该使用Django信号或其他技术自动进行更新吗?每次有人进行API调用时手动更新模型似乎不是一个好主意。模型a仅由Django Admin更新。例如,当模型A的名称在Django Admin上更新时,我需要对模型B进行更新。因此,我只需要知道何时更新了我的更改,@ssiceAnyway,为什么不自动进行更新?此外,你应该在你的问题中添加所有这些信息。