我的模特:
class Article(models.Model):
user = models.ForeignKey(User)
categories = models.ManyToManyField(AuditGroup)
topic = models.ManyToManyField(Topic)
title = models.CharField(max_length=255)
short_desc = models.TextField(blank=True)
创建了迁移:
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'Article'
db.create_table('certification_article', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
('title', self.gf('django.db.models.fields.CharField')(max_length=255)),
('short_desc', self.gf('django.db.models.fields.TextField')(blank=True)),
))
正在制作两个多对多关系中的任何一个!我错过了什么?
注意:我的模型中有一个奇怪的东西(接管项目):我的model.py中有一个类ProgramOverview。但是这个类中的所有代码都是小写的!实际上,在schemamigration上运行--auto会产生有关ProgramOverview的错误。删除它,南想要删除这个类(原来这是DB中需要的视图!) - >这似乎是因为一些“hacky-ish”原因而被放在那里......所以我用以下方式制作了迁移:
./manage.py schemamigration certification --add-model Article
编辑:这是真正的问题。不知怎的,我的编辑搞砸了ProgramOverview代码。恢复代码后,我能够运行./manage.py schemamigration认证--auto,它生成了所有需要的表格! 结束编辑
虽然我需要多对多。
答案 0 :(得分:2)
您不会在该声明中看到M2M。你看到的是正确的。
M2M“字段”是新表的抽象。 “文章”模型中没有数据库级别字段。
向下扫描页面以查看相关的M2M表创建代码。