Поле Django ManyToMany не создано в модели - PullRequest
2 голосов
/ 31 января 2012

Вот моя модель для учителя.

class Teacher(Profile):
    class Meta:
        db_table = 'teacher'

    user = models.OneToOneField(User,
                                unique=True,
                                verbose_name=_('user'),
                                related_name='teacher')

    home_address =  models.CharField(_('home_address'), max_length=255, blank=True)
    home_phone =  models.CharField(_('home_phone'), max_length=30, blank=True)
    cell_phone =  models.CharField(_('cell_phone'), max_length=30, blank=True)
    experience =  models.IntegerField(default = 0)
    summary =  models.TextField(_('summary'), max_length=500, blank=True)
    subjects = models.ManyToManyField(Subjects, through='SubjectsIntermediate')

Когда я выполняю manage.py syncdb, он создает таблицу teacher со всеми полями, кроме поля subjects. Почему поле subjects не создано ??

1 Ответ

6 голосов
/ 31 января 2012

Поскольку ManyToMany не является полем, по крайней мере, не тем, которое существует в качестве столбца базы данных.Это отношения с таблицей ссылок.Вы обнаружите, что была создана таблица с именем myapp_teacher_subjects с внешними ключами как для учителя, так и для предметов.

...