Кажется, что это должно быть "легким" или, по крайней мере, документированным где-то, я просто не могу его найти.
Допустим, у меня есть модель:
class A(models.Model):
users = models.ManyToMany('auth.User', blank=True)
Теперь я хочу перейти на таблицу through, чтобы добавить поля в отношение ManyToMany...
class AUsers(models.Model):
user = models.ForeignKey('auth.User')
a = models.ForeignKey('A')
new_field = models.BooleanField()
class A(models.Model):
users = models.ManyToMany('auth.User', blank=True, through='AUsers')
Тогда я делаю:
% ./manage.py schemamigration app --auto
Не совсем удивительно, он говорит мне, что он собирается отказаться от оригинальной автоматической сборки через таблицу и создать новую для AUsers. Какая лучшая практика на данный момент? Есть ли достойный способ перехода на новую таблицу through? Использовать ли db_table в мета? Я просто не использую through=... сразу... затем выполните schemamigration --auto, затем datamigration, чтобы скопировать текущую таблицу (как-то, не уверен...), а затем добавить отношение through и позволить он убивает таблицу?
Какой трюк здесь? Это действительно так сложно?