﻿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
11618	Child models overwrite data of Parent model	truebrain@…	nobody	"Given the next set of models:


{{{
class Project(models.Model):
  name = models.IntegerField()

class Subversion_Project(Project):
  revision = models.IntegerField()

class Mercurial_Project(Project):
  revision = models.CharField(max_length=64)
# This model is not used below, but it shows the intention of my database design
}}}


And the code:

{{{

project = Project(name = 1)
project.save()
sproject = Subversion_Project(project_ptr = project)
sproject.save()
}}}


The latter command overwrites the content of 'project' with all empty fields. When you print project.name or sproject.project.name before the save() it still is fine. After the save() it updates the project with empty values.

My solution is:

{{{

sproject = Subversion_Project(project_ptr = project)
for f in project._meta.local_fields: setattr(sproject, f.name, getattr(project, f.name))
}}}


Which is, putting it mildly, silly. Is this a bug, or do I expect too much of the system?
"		closed	Database layer (models, ORM)	dev		duplicate			Unreviewed	0	0	0	0	0	0
