When I first started out with Django I foolishly created a model (lets call it Foo) and explicitly give it a id field not knowing that django added this automatically. I also have a model (lets call it Bar) with a foreign key to this model. I wanted to update things and get rid of this foo_id field so I deleted it, ran a schemamigration with south and ran the change. Problem I'm getting now is my Bar model is throwing errors with DoesNotExist: Foo matching query does not exist. when I try to call foo from it
If I look at the object, there is an attribute for foo and foo_id. foo_id returns a ID but when I just try to call foo, for 95% of them it returns the error.
class Foo(models.Model):
foo_id = models.IntegerField(primary_key=True)
class Bar(models.Model)
foo = models.ForeignKey(Foo)
The schemamigration
class Migration(SchemaMigration):
def forwards(self, orm):
# Deleting field 'Foo.foo_id'
db.delete_column(u'foo', 'foo_id')
# Adding field 'Foo.id'
db.add_column(u'foo', 'id',
self.gf('django.db.models.fields.AutoField')(default=None, primary_key=True),
keep_default=False)
What needed to be done was a data transformation within the migration file, which required some customization
It's really untested but probably close to what is needed.