Guest007
8/28/2017 - 7:59 PM

Функция для обновления Django объекта

Функция для обновления Django объекта

def refresh(obj):
    """Перезапрашивает объект из базы и возвращает новый инстанс."""
    return obj.__class__.objects.get(pk=obj.pk)

# Пример
def test_some_functionality():
    foo = Foo.objects.create(name='foo')

    assert foo.name == 'foo'
    change_all_names_to('bar')

    foo = refresh(foo)
    assert foo.name == 'bar'

# Ещё вариант:
def reload(obj):
    return type(obj)._default_manager.get(pk=obj.pk)