2

我的模型:

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 的错误。删除它,南想删除这个类(原来这是数据库中需要的一个视图!)-->这似乎是出于某种“hacky-ish”的原因......所以我制作了迁移和:

./manage.py schemamigration certification --add-model Article

编辑:是真正的问题。不知何故,我的编辑器弄乱了 ProgramOverview 代码。恢复代码后,我能够运行 ./manage.py schemamigration certificate --auto 生成所有需要的表!结束编辑

我需要多对多。

4

1 回答 1

2

您不会在该声明中看到 M2M。你看到的是正确的。

M2M“字段”是新表的抽象。“文章”模型中没有数据库级字段。

向下扫描页面可以看到相关的M2M建表代码。

于 2013-04-28T00:56:58.003 回答