django/django — pull request #2194 by Wilfred (2014-01-21 17:32:31+00:00)
Title: Implementing Model.get_again, which fetches a fresh copy from the DB.

This is a proposed fix to https://code.djangoproject.com/ticket/901

I believe that most users are implementing this functionality with the
following workaround:

my_foo = Foo.objects.get(pk=my_foo.pk) # Get latest value from DB.

This method simply provides a standard Django way of reloading from the
DB, and includes documentation so users can discover it.

Several commentators have proposed a Model.reload() method that modifies
the model in place. However, this interacts badly with references, such
as OneToOneField. See
https://groups.google.com/d/msg/django-developers/Dcqq7zr2VZo/3OzSEoAS9_sJ

This method compromises by returning a new instance, which I believe
meets the large majority of use cases.