У меня есть следующая модель -миграции существующего приложения через юг
class ToDo(models.Model):
todo_title = models.CharField(null=True, blank=True, max_length=200)
todo_status = models.IntegerField(choices=TASK_STATUS, null=True, blank=True)
assigned_to = models.ManyToManyField(OrgStaff, null=True, blank=True, related_name='assigned_to')
assigned_by = models.ManyToManyField(OrgStaff, null=True, blank=True, related_name='assigned_by')
assigned_time = models.DateTimeField(auto_now_add=True)
completed_time = models.DateTimeField(null=True, blank=True)
Я затем запустить python manage.py convert_to_south todoapp
где todoapp это имя приложения. Тогда я бегу python manage.py migrate todoapp.
Как только это будет сделано, я добавить еще одно поле в указанной выше модели -
class ToDo(models.Model):
todo_title = models.CharField(null=True, blank=True, max_length=200)
todo_slug = models.SlugField(null=True, blank=True)
todo_status = models.IntegerField(choices=TASK_STATUS, null=True, blank=True)
assigned_to = models.ManyToManyField(OrgStaff, null=True, blank=True, related_name='assigned_to')
assigned_by = models.ManyToManyField(OrgStaff, null=True, blank=True, related_name='assigned_by')
assigned_time = models.DateTimeField(auto_now_add=True)
completed_time = models.DateTimeField(null=True, blank=True)
Теперь я делаю schemamigation - python manage.py schemamigration todoapp --auto
, а затем python manage.py migrate todoapp
делает это дает следующее сообщение об ошибке -
Running migrations for taskbase:
- Migrating forwards to 0002_auto__add_field_todo_todo_slug.
> taskbase:0002_auto__add_field_todo_todo_slug
KeyError: u'todo_title'
Любая идея, почему я получаю эту ошибку? Я ударил головой, но не смог найти причину.
На самом деле у меня не было префикса 'todo' изначально, в первый раз, когда я делал, я получал ошибку' KeyError: u'title'', поэтому я добавил префикс. Теперь это дает ошибку. – user1629366
Я удалил South == 0.7.3 и обновился до South == 0.8.2, и он сработал. – user1629366