Разделить models.py на несколько файлов

Я пытаюсь разделить 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

Это не работает, затем я нашел это , но в этом решении у меня все еще есть проблема, когда я запускаю 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;

Я не совсем уверен в этом, но меня беспокоит часть Следующие ссылки должны быть добавлены, но зависят от несуществующих таблиц :

Это мой файл 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"

Итак, следует ли мне запустить альтер для ссылок вручную? это может вызвать у меня проблемы с югом?

77
задан Community 23 May 2017 в 11:47
поделиться