首页 > 解决方案 > 如何在保存之前访问 django 模型表单中字段的先前值?

问题描述

在保存表单之前,我需要访问 Django 模型实例字段的先前值。例如在form_valid方法中需要访问模型实例的先前值。我怎样才能做到这一点?

标签: djangodjango-forms

解决方案


您可以使用复制您以前的模型实例,copy以便在保存新实例时它不会覆盖您以前的实例:

import copy

if form.is_valid():
    obj = YourModel.objects.get(pk=form.instance.pk)
    prev_obj = copy.copy(obj)
    // here you can access any field of your previous object related to that instance.
    // prev_obj.field
    new_obj = form.save()

注意:这仅适用于您要更新模型而不是在创建期间。


推荐阅读