首页 > 解决方案 > 如何在 Django 信号中使用 update_fields

问题描述

我正在尝试使用传递给 Django 中信号的“update_fields”参数。

我现在有一些非常简单的东西,即:

@receiver(pre_save, sender=models.UserAdmin)
@receiver(pre_save, sender=models.UserGroupAdmin)
def update_timestamps(sender, instance, update_fields, **kwargs):
    print(f'Update fields: {update_fields}')

update_fields无论更新什么都显示为无,这表明我没有理解某些内容。

我错过了什么?

标签: djangodjango-signals

解决方案


update_fields传递给 Model.save() 的要更新的字段集,如果 update_fields 未传递给 save(),则为 None。

save()update_fields 只是传递您在更新方法中设置的字段

它们不是在特定情况下更新的字段(您可以在此列表中设置几个字段,但可能只有其中一个字段会在数据库中实际更改)


推荐阅读