将模型本身保持在独立应用中是否可取?

时间:2013-10-04 09:00:45

标签: django django-models django-views

我正在与django合作开展一个小项目。我不确定以下方法是否是最佳方法。

我在项目下有三个应用程序

1)app1,app2,app3

问题:

2)所有三个应用程序都使用相同的模型,如果我将模型本身保存到不同的应用程序中以便app1,app2,app3可以访问它,那就没问题了吗?

ie:1)modelStore,app1,app2,app3。

请认为这是一个更新鲜的问题!!。

2 个答案:

答案 0 :(得分:0)

最重要的是,您将模型放在应用程序中,这是最相关的。然后就像

一样导入它
from app1.models import MyModel

此行可在您的代码中的任何位置使用。

答案 1 :(得分:0)

如果您不打算创建(独立)可重用应用程序,可以在这些应用程序之间共享功能。

但是,如果用法紧密结合在一起,您应该始终考虑将功能拆分到不同的应用程序中是否真的是最好的解决方案。

另一种方法可能只有一个应用程序,拆分表单,管理员或模型(如果这提高了可读性)。

/project_root
    /project
        __init__.py
        settings.py
    /app
        __init__.py  # imports Foo and Bar from foo_models and bar_models
        /models
            foo_models.py  # requires a `class Meta: app_label = 'app'`
            bar_models.py  # requires a `class Meta: app_label = 'app'`
        /forms
            foo_forms.py
     manage.py

而且,无论你选择什么,只要保持一致,没有什么比不一致的编码更糟糕了。