Добавление поля ManyToMany на лету в Django - PullRequest
0 голосов
/ 10 ноября 2011

Я создал модель и выполнил операцию «syncdb». Было выполнено отлично. Кроме того, я вставил много записей в эту модель, а затем создал еще одну модель, которую необходимо подключить как M2M для предыдущей модели.

Models.py

class Topic(models.Model):
      name = models.CharField(max_length=200)
      description = models.TextField()

Я сделал эту модель и выполнил syncdb, также я вставил много записей для этой модели

Я добавляю еще одну модель

class BusinessUnit(models.Model):
      name = models.CharField(max_length=300)
      user = models.OneToOneField(User,primary_key=True)

Затем я разработал «Тема» для требования

class Topic(models.Model):
  name = models.CharField(max_length=200)
  description = models.TextField()
  business_unit = models.ManyToManyField(BusinessUnit)

Здесь я хочу выполнить операции, связанные с динамическими отношениями M2M, вручную.

Вот какие шаги мне нужно сделать вручную для этого динамически добавленного отношения M2M field(business_unit) в «Теме», например создание базы данных? Индексация, отношения и т.д ..?

Это было бы легко, когда мне нужно было бы динамически добавить поле для существующей модели?

1 Ответ

0 голосов
/ 10 ноября 2011

Вы можете увидеть SQL, который Django использует для создания моделей, запустив python manage.py sqlall <appname>.Самый простой способ изменить базу данных - это взять SQL, который представляет ваши изменения, и запустить его для базы данных;вы можете получить оболочку базы данных, запустив python manage.py dbshell.

...