如何在 Django 应用程序中创建分层 URL?

How to create hierarchical urls within django app?

我有多个基于应用程序的 django 项目,并且在一些应用程序中 url 由于模型的数量,方案变得复杂。因此,我正在寻找一种在应用程序.

中创建分层url结构的方法

在我的 项目的 urls 文件 中,我执行以下操作。

from order import urls as order_urls

order 应用程序中,我有 urls.pyurls 目录,其中包含每个模型的单独 url 模式,如下所示。

在应用程序的 urls.py 文件中,我按如下方式导入模型的 urls。

from  urls import rental as rental_urls

urlpatterns = [
    url(r'^rental-request/', include(rental_urls)),
]

这给了我错误:ModuleNotFoundError: No module named 'urls' 如果我输入 __init__.py 它会给我循环导入错误。

我不确定这是否符合我的要求way/possible。任何人都可以解释实现它的正确方法吗?

在同一文件夹中有一个名为 urls 的文件夹(带有一个 __init__.py 文件)以及一个文件 urls.py 可能会导致加载模块出现问题 order.urls 从你项目的任何地方。 Python 如何知道必须加载哪个文件?

考虑这个结构:

├── main.py
├── urls
│   └── __init__.py
└── urls.py

每个文件的内容:

# urls/__init__.py
urlpatterns = "I'm in folder"

# urls.py
urlpatterns = "I'm in file"

# main.py
import urls
print(urls.urlpatterns)

当你运行main.py时,结果是:

% python main.py
I'm in folder

可能的解决方案: 您可以删除 urls.py 并将其内容移至 urls/__init__.py,或重命名文件夹 urls 以避免冲突并相应地更新导入(在 urls.py 中)