2 つのモデルを定義しました。
class Server(models.Model):
owners = models.ManyToManyField('Person')
class Person(models.Model):
name = models.CharField(max_length=50)
admin.site.register(Server)
admin.site.register(Person)
その後、楽しみのためにSQLをチェックしました:
BEGIN;
CREATE TABLE "servers_server_owners" (
"id" integer NOT NULL PRIMARY KEY,
"server_id" integer NOT NULL,
"person_id" integer NOT NULL,
UNIQUE ("server_id", "person_id")
)
;
CREATE TABLE "servers_server" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(50) NOT NULL,
"port" integer unsigned NOT NULL,
"state" integer NOT NULL
)
;
CREATE TABLE "servers_person" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(50) NOT NULL
)
;
COMMIT;
そこにはこうも書かれていますCREATE TABLE "servers_server_owners"
syncdb
新しいモデルをデータベースにインストールするために実行しました。操作するオブジェクトを定義するために管理者インターフェースに移動しましたが、次のエラーが発生しました。
DatabaseError at /admin/servers/server/1/
no such table: servers_server_owners
私はdev-serverをシャットダウンし、syncdb
再度実行し、サーバーを起動しました:それでも同じ問題です。IDを作成したと言っただけなのに、テーブルが見つからないのはなぜですか?