Я не могу найти ссылку на конкретную проблему в документах или в Интернете.
У меня есть существующее много-много отношение.
class Books(models.Model):
name = models.CharField(max_length=100)
class Authors(models.Model):
name = models.CharField(max_length=100)
books = models.ManyToManyField(Books)
У этого есть миграции и данные. Теперь мне нужно использовать через опцию, чтобы добавить одно дополнительное поле в таблицу, содержащую много-много отношений.
class Authorship(models.Model):
book = models.ForeignKey(Books)
author = models.ForeignKey(Authors)
ordering = models.PositiveIntegerField(default=1)
class Authors(models.Model):
name = models.CharField(max_length=100)
books = models.ManyToManyField(Books, through=Authorship)
Когда я запускаю миграции, django создает новую миграцию для модели Authorship
. Я попытался создать файл миграции вручную, добавив столбец ordering
в таблицу Authorship
и изменив столбец books
в таблице Authors
, но я получаю некоторые проблемы с миграцией.
operations = [
migrations.AddField(
model_name='authorship',
name='ordering',
field=models.PositiveIntegerField(default=1),
),
migrations.AlterField(
model_name='authors',
name='books',
field=models.ManyToManyField(to='app_name.Books', through='app_name.Authorship'),
),
]
При попытке переноса, он дает KeyError: ('app_name', u'authorship')
, я уверен, что есть другие вещи, которые затронуты и, следовательно, ошибки.
Какие вещи мне не хватает? Есть ли другой подход к работе с этим?