在 Django 中更改 URL 模式,使其不显示应用程序名称

Changing URL pattern in Django so it doesn't show app name

我有一个名为 "projects" 的 folder/app,我想在那里创建一个新站点,比如说,"cheese"。 在项目文件夹中 urls.py 的 urlpatterns 中,我得到了

path('cheese/', views.cheese, name='cheese')

但整个 URL 看起来像 域。co/projects/cheese

我想省略 URL 中的 projects,所以它可能只是 domain.co/cheese

那些 URL- 事情对我来说有点难以理解,而且由于我无法正确命名我的问题,所以我找不到解决方案,尽管我相信一定有一些解决方案。

app 放在另一个 app 中的想法有点奇怪,但无论如何,这不会强制内部应用程序的 url 像 <outer_app>/<inner_app>/... 如果您正确设置 url 模式。

基本上,您已经 domain.co/projects/cheese 因为,您将项目的应用 url 包含为:

# main urls.py file for your project


path('projects/', include('projects.urls'))

并且在您项目的 urls 文件中您有:

# projects/urls.py


path('cheese/', include('projects.cheese.urls'))

因此,如果您想将 cheese url 设置为 domain.co/cheese,只需将 include 添加到 main url 文件:

# main urls.py file for your project


path('projects/', include('projects.urls'))
path('cheese/', include('projects.cheese.urls'))