Как восстановить экземпляр модели Django после внесения некоторых изменений? - PullRequest
2 голосов
/ 01 мая 2011

Предположим, у меня есть модель 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)

Приведенный выше код зависит от имени класса Model.Есть ли более простой, независимый от модели способ сделать это?

1 Ответ

3 голосов
/ 01 мая 2011

Учитывая экземпляр р,

p = p.__class__._default_manager.get(pk=p.pk)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...