0
我正在使用多個ManyToManyFields的項目,但是,在這一點上,我意識到我想ManyToManyField存儲一些額外的值(主要是自動設置),如時間戳連接已創建。我想這一點,與我的自定義更換參考models.ManyToManyField
ManyToManyField
用自定義字段擴展Django的ManyToManyField
class CustomManyToManyField(models.ManyToManyField):
date_registered = models.DateTimeField(auto_now=True)
然後我的模型:
class A(models.Model):
name = models.CharField(max_length=32)
class B(models.Model):
m2m = CustomManyToManyField(A)
name = models.CharField(max_length=32)
但是,在運行python manage.py sql testapp
返回以下SQL:
BEGIN;
CREATE TABLE "testapp_a" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(32) NOT NULL
)
;
CREATE TABLE "testapp_b_m2m" (
"id" integer NOT NULL PRIMARY KEY,
"b_id" integer NOT NULL,
"a_id" integer NOT NULL REFERENCES "testapp_a" ("id"),
UNIQUE ("b_id", "a_id")
)
;
CREATE TABLE "testapp_b" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(32) NOT NULL
)
;
它沒有考慮到我在擴展CustomManyToManyField
中定義的date_registered
字段。爲什麼不?
謝謝。發佈我的問題後,我立即找到了該頁面。我的腦袋放屁很大。 – ponycat