使用以下模型:
class Bar(models.Model):
bar = models.TextField(max_length=40,blank=False,null=False)
class Foo(models.Model):
foo = models.TextField(max_length=8,blank=False,null=False)
bars = models.ManyToManyField(Bar)
Django 1.6.1生成:
BEGIN;
CREATE TABLE "example_bar" (
"id" integer NOT NULL PRIMARY KEY,
"bar" text NOT NULL
)
;
CREATE TABLE "exmaple_foo_bars" (
"id" integer NOT NULL PRIMARY KEY,
"foo_id" integer NOT NULL,
"bar_id" integer NOT NULL REFERENCES "mdtconfig_bar" ("id"),
UNIQUE ("foo_id", "bar_id")
)
;
CREATE TABLE "exmaple_foo" (
"id" integer NOT NULL PRIMARY KEY,
"foo" text NOT NULL
)
;
COMMIT;
为什么" foo_id" in" example_foo_bars"没有"参考"像" bar_id"在同一张桌子上?
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
因为还没有创建exmaple_foo表,所以它无法添加引用。然而,之后它通过执行ALTER TABLE来添加索引来执行此操作,您可以在执行./manage.py sqlall
时看到。
但是,这种表创建方法已被1.7中的迁移功能所取代。