我似乎坚持在 Django 中的两个模型之间创建初始可延迟外键关系并使用 SQLite3 作为我的后端存储。
考虑这个简单的例子。这就是models.py的样子:
from django.db import models
class Investigator(models.Model):
name = models.CharField(max_length=250)
email = models.CharField(max_length=250)
class Project(models.Model):
name = models.CharField(max_length=250)
investigator = models.ForeignKey(Investigator)
这就是sqlall的输出:
BEGIN;
CREATE TABLE "moo_investigator" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(250) NOT NULL,
"email" varchar(250) NOT NULL
)
;
CREATE TABLE "moo_project" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(250) NOT NULL,
"investigator_id" integer NOT NULL REFERENCES "moo_investigator" ("id")
)
;
CREATE INDEX "moo_project_a7e50be7" ON "moo_project" ("investigator_id");
COMMIT;
项目表的 *investigator_id* 列中缺少“DEFERRABLE INITIALLY DEFERRED” 。我究竟做错了什么?
ps 我是 Python 和 Django 的新手——使用 Python 2.6.1 版 Django 1.4 版和 SQLite 3.6.12 版