Вы должны быть в состоянии сделать это довольно легко.
Прежде всего, убедитесь, что создаваемая вручную таблица с таблицей имеет то же имя таблицы в базе данных, что и Django, изначально созданный автоматически.
Итак, во-первых, давайте рассмотрим модель руководства до изменения:
class AUsers(models.Model):
user = models.ForeignKey('auth.User')
a = models.ForeignKey('A')
class Meta:
db_table = 'appname_a_user'
Это должно быть функционально (почти) идентично ManyToManyField
, который вы имели раньше.На самом деле, вы могли бы сделать пустую миграцию и применить ее, а затем использовать --auto для своих изменений (но не).
Теперь добавьте свое поле, как вы делали в своемПример кода выше, а затем выполните ./manage.py schemamigration appname manual_through_table --empty
.Это даст вам пустую миграцию с именем ####_manual_through_table.py
.
В самой миграции будет метод forwards
и backwards
.Каждый должен быть в одну строку:
def forwards(self, orm):
db.add_column('appname_a_user', 'new_field', self.gf('django.db.models.fields.BooleanField')(default=False))
def backwards(self, orm):
db.delete_column('appname_a_user', 'new_field')
Это должно дать вам то, что вы ищете.