Django中的ManyToMany字段未在模型中创建
这是我为教师类写的模型。
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 个回答
8
因为多对多关系(ManyToMany)并不是一个字段,至少它不是一个在数据库中作为列存在的字段。它是一种关系,涉及到一个连接表。你会发现有一个名为 myapp_teacher_subjects
的表被创建了,这个表里有指向教师和科目的外键。