【问题标题】:Django handling multiple apps in a same projectDjango 在同一个项目中处理多个应用程序
【发布时间】:2020-09-13 05:18:12
【问题描述】:

最近我开始了一个 Django 项目,我创建了一个应用程序并开始在其中添加我的模型和视图,随着时间的推移,项目变得越来越大,超过 20 个模型、序列化和一个包含数千个的巨大视图文件结果是代码行,另一方面,一些模型(如用户配置文件)也可能在其他项目中有用,所以我决定创建一些新应用程序(如 userProfile)并将相关代码移动到我的新应用程序中。

所以我做了以下过程:

  1. 使用manage.py >> startapp userProfile
  2. 从主应用程序中剪切模型、序列化程序、...并将它们传递到新应用程序 models.py、序列化程序.py、...
  3. 将 userProfile 添加到 settings.py 安装的应用程序中

此时出现了很多问题,因为主应用程序中不再提供 UserProfile 模型和序列化程序,因此我尝试从新参考(userProfie 应用程序)导入它们,但代码 from userProfile.models import Userprofile 不起作用,似乎主应用看不到 userProfile 应用。

PS:如果我写 from PROJECTNAME.userProfile.models import UserProfile ,不会发生 IDE 错误,但在构建项目时会出现“找不到模块错误”

【问题讨论】:

  • 确保再次运行migratemakemigrations。还要确保您的 settings.py 文件中包含正确的 os oath 和静态 url 以及正确的导入方法。

标签: django django-models django-rest-framework django-views


【解决方案1】:

我最终找到的一个解决方案是将我的应用程序(如 userProfile)导出为一个包,然后将这些包安装到我的项目中,为此我使用了 Django 网站上的文章“How to write reusable apps”,但这是一个很好的解决方案但它有一个缺点是

包在某种程度上是一种外部资源,并不意味着 在项目中编辑

,我的意思是,如果您需要更改,您应该在其他地方编辑包,然后在项目中编辑pip install --upgrade YourPackage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2021-06-04
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多