django - 进行一些更改后如何恢复 Django 模型实例?

标签 django

假设我有一个 Django 模型如下:

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

我在某个地方有一个实例 p,我对其进行了一些更改。

p.first_name = 'new first name'

由于某种原因,我希望恢复对此实例所做的所有更改。我能想到的一种恢复方法如下:

p = Person.objects.get(pk=p.pk)

上面的代码取决于模型类名。有没有更简单的独立于模型的方法来做到这一点?

最佳答案

给定一个实例 p,

p = p.__class__._default_manager.get(pk=p.pk)

关于django - 进行一些更改后如何恢复 Django 模型实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5846088/

相关文章:

jquery - Django 上下文变量和 ajax 响应

python - 在 Django 中创建模型实例时如何获取模型的长度

django - 为什么 django 的 prefetch_related() 只适用于 all() 而不是 filter()?

django - 覆盖 django 管理分页以及 url 参数

python - 不同客户端的 Django 权限

jquery - 在 django 中使用序列化的 ajax post 数据

django - 数以千计的外来 unicorn worker

python - 使用 Django 和 matplotlib 进行动态绘图

python - 尝试运行 UWSGI + virtualenv 时“导入站点”失败

django - settings.py (django 1.6) 中缺少 TEMPLATE_DIRS