Copy a model instance

1
2
3
4
5
6
7
from django.db.models import AutoField
def copy_model_instance(obj):
    initial = dict([(f.name, getattr(obj, f.name))
                    for f in obj._meta.fields
                    if not isinstance(f, AutoField) and\
                       not f in obj._meta.parents.values()])
    return obj.__class__(**initial)

Comments

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.