2

我有一个名为 的 Django 应用程序tickets,具有以下模型:

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.User。但是,当我使用 Django 生成 SQL 时,它没有显示REFERENCESfor 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 回答