2

tickets私は、次のモデルを持つと呼ばれる Django アプリを持っています。

from django.db import models

class Project(models.Model):
    name = models.CharField(max_length=200)

class Ticket(models.Model):
    summary = models.CharField(max_length=500)
    project = models.ForeignKey(Project)
    user = models.ForeignKey('auth.User')

への外部キーがありますauth.UserREFERENCESただし、Django を使用して SQL を生成すると、 forが表示されませんuser_id。なぜだめですか?

$ python manage.py sql tickets
BEGIN;
CREATE TABLE "tickets_project" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(200) NOT NULL
)
;
CREATE TABLE "tickets_ticket" (
    "id" integer NOT NULL PRIMARY KEY,
    "summary" varchar(500) NOT NULL,
    "project_id" integer NOT NULL REFERENCES "tickets_project" ("id"),
    "user_id" integer NOT NULL -- no references here!
)
;

COMMIT;

python manage.py sql auth ticketsこれは、どちらを呼び出しても、アプリが同じプロジェクトにある場合にも発生しません。

4

1 に答える 1

2

作成時にそれを行うことはできません。チケット アプリの SQL を出力するだけでは、認証テーブルが作成されたことを保証できないためです。したがって、最後にそれらを個別に実行しますがsql、インデックスは出力sqlindexesしません。

于 2013-04-08T14:06:17.147 に答える