Tôi đang cố gắng chia models.py
ứng dụng của mình thành nhiều tệp:
Dự đoán đầu tiên của tôi là làm điều này:
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
Điều này không hoạt động, sau đó tôi tìm thấy điều này , nhưng trong giải pháp này, tôi vẫn gặp sự cố, khi tôi chạy, python manage.py sqlall app1
tôi nhận được một cái gì đó như:
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;
Tôi không chắc về điều này, nhưng tôi lo lắng về phần The following references should be added but depend on non-existent tables:
Đây là tệp model1.py của tôi:
from django.db import models
class Store(models.Model):
class Meta:
app_label = "store"
Đây là tệp model3.py của tôi:
from django.db import models
from store.models import Store
class Product(models.Model):
store = models.ForeignKey(Store)
class Meta:
app_label = "product"
Và dường như hoạt động nhưng tôi đã nhận xét alter table
và nếu tôi thử điều này, điều tương tự sẽ xảy ra:
class Product(models.Model):
store = models.ForeignKey('store.Store')
class Meta:
app_label = "product"
Vì vậy, tôi có nên chạy thay đổi cho các tham chiếu theo cách thủ công không? điều này có thể mang lại cho tôi vấn đề với phía nam?
from app1.models.model1 import Store
?