【发布时间】:2011-09-14 06:23:14
【问题描述】:
我正在尝试将我的应用程序的 models.py 拆分为多个文件:
我的第一个猜测是这样做:
myproject/
settings.py
manage.py
urls.py
__init__.py
app1/
views.py
__init__.py
models/
__init__.py
model1.py
model2.py
app2/
views.py
__init__.py
models/
__init__.py
model3.py
model4.py
这不起作用,然后我找到了this,但是在这个解决方案中我仍然有问题,当我运行python manage.py sqlall app1 时,我得到了类似的东西:
BEGIN;
CREATE TABLE "product_product" (
"id" serial NOT NULL PRIMARY KEY,
"store_id" integer NOT NULL
)
;
-- The following references should be added but depend on non-existent tables:
-- ALTER TABLE "product_product" ADD CONSTRAINT "store_id_refs_id_3e117eef" FOREIGN KEY ("store_id") REFERENCES "store_store" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE INDEX "product_product_store_id" ON "product_product" ("store_id");
COMMIT;
对此我不太确定,但我担心The following references should be added but depend on non-existent tables:的部分
这是我的 model1.py 文件:
from django.db import models
class Store(models.Model):
class Meta:
app_label = "store"
这是我的 model3.py 文件:
from django.db import models
from store.models import Store
class Product(models.Model):
store = models.ForeignKey(Store)
class Meta:
app_label = "product"
显然有效,但我在alter table 中得到了评论,如果我尝试这个,同样的事情会发生:
class Product(models.Model):
store = models.ForeignKey('store.Store')
class Meta:
app_label = "product"
那么,我应该手动运行 alter for references 吗?这可能会给我带来南方的问题吗?
【问题讨论】:
-
如果您尝试
from app1.models.model1 import Store,模型 3 会发生什么? -
另外你可能想看看*.com/questions/5534206/…
标签: python django django-models import