Добавление сквозной таблицы в поле django и переход с помощью South?

Похоже, это должно быть «легко» или, по крайней мере, где-то задокументировано, я просто не могу ее найти.

Допустим, у меня есть модель:

class A(models.Model):
    users = models.ManyToMany('auth.User', blank=True)

Теперь я хочу перейти на таблицу с по , чтобы добавить поля в отношение 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 . Какая лучшая практика на данный момент? Есть ли достойный способ перейти на новую таблицу с через ? Могу ли я использовать db_table в Meta? Я просто не использую через = ... сразу... затем выполните schemamigration --auto , затем datamigration , чтобы скопировать текущую таблицу (каким-то образом, не уверен ...), а затем добавьте отношение через и пусть он убьет стол?

Какой здесь трюк? Неужели это так сложно?

14
задан dlamotte 19 May 2011 в 18:40
поделиться