﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
16340	get_or_create should preserve the original traceback.	Dougal Matthews	Jonas Obrist	"(more context in #15117)

get_or_create in django.db.models.query re-raises the last exception as below. This modifies the traceback and the exception should preserve this.

{{{
            except IntegrityError, e:
                transaction.savepoint_rollback(sid, using=self.db)
                try:
                    return self.get(**lookup), False
                except self.model.DoesNotExist:
                    raise e
}}}

this can be fixed with

{{{
                exc_info = sys.exc_info()
                try:
                    return self.get(**lookup), False
                except self.model.DoesNotExist:
                    raise exc_info[1], None, exc_info[2]
}}}"	Cleanup/optimization	closed	Database layer (models, ORM)	1.3	Normal	fixed			Accepted	1	0	0	0	1	0
