Szukałem odpowiedzi na to pytanie w witrynie South, Google i SO, ale nie mogłem znaleźć prostego sposobu, aby to zrobić.
Chcę zmienić nazwę modelu Django przy użyciu South. Załóżmy, że masz:
class Foo(models.Model):
name = models.CharField()
class FooTwo(models.Model):
name = models.CharField()
foo = models.ForeignKey(Foo)
i chcesz przekonwertować Foo na Bar, a mianowicie
class Bar(models.Model):
name = models.CharField()
class FooTwo(models.Model):
name = models.CharField()
foo = models.ForeignKey(Bar)
Aby to uprościć, po prostu próbuję zmienić nazwę z Foo
na Bar
, ale na razie zignoruję foo
członka FooTwo
.
Jaki jest najłatwiejszy sposób na zrobienie tego za pomocą South?
- Prawdopodobnie mógłbym przeprowadzić migrację danych, ale wydaje się to dość skomplikowane.
- Napisz niestandardową migrację, np.
db.rename_table('city_citystate', 'geo_citystate')
Ale nie jestem pewien, jak naprawić klucz obcy w tym przypadku. - Łatwiejszy sposób, który znasz?