可以自定义Django中的模型软件包路径



django中项目的默认文件夹结构是:

myproject/
    - myapp/
        - models.py
    - myproject/
        - settings.p

是否可以改变该结构?

我想做类似的事情:

myproject/
    - myapp/
        - infrastructure/
            - models.py
    - myproject/
        - settings.py

myproject/
    - myapp/
        - infrastructure/
            - models/
                - __init__.py
                - some_model.py
    - myproject/
        - settings.py

我知道我可以制作一个models软件包,然后将模型分为不同的文件。但是我想更改该软件包的名称/路径。

是,否。在这种情况下,您的应用将为myapp.infrastructure,并且需要在设置中添加到INSTALLED_APPS

具有models.py文件和models/文件夹对于Python而言大多相同。在这种情况下,您需要在models/文件夹中的__init__.py文件中导入不同的模型。

这个想法是,您的模型和其他代码应在项目中以某种方式导入Django Management命令以查看它们(例如:准备数据库迁移-Makemigrations命令)。因此,只要Makemigrations可以看到您的模型,就可以将它们放置在任何地方。这只是一种python的方式,与Django框架没有直接相关。

至于基本事物的名称(模型,视图,应用程序,信号,管理员等) - 我认为唯一以其名称所需的是models。正如它在ORM中直接使用的。检查以下内容:Django应用程序文档

因此,这要归功于Python的语法,但Django不建议这样做。Django的设计实践的创建是为了使每个人更容易编写一个可读的应用程序,您可以轻松地理解本来应该在哪里,并且可以轻松地工作,而无需学习其他人设计的项目的内部规则。对于项目开始后,有很多开发人员可以在任何时间加入的项目,这对于项目非常重要。因此,除非您很清楚自己在做什么,否p>

最新更新