我做了一个简单的博客,然后我做了一个新的应用程序,复制了所有的代码(更改为新的应用程序),我做了URL路径.它们的第二个应用程序路径都不起作用,它想要前缀... 我的错在哪里?

这是GitHub回购和我的代码. https://github.com/eseymenler/firmas

Ulus = folder name
Ulusal = project name
Ulusalb = First app
Firma = Second app

主项目urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include('ulusalb.urls')),
    path("firma/", include('firma.urls')),
]

当我做这个的时候,我有一个这样的错误

enter image description here

但是当我做这个的时候

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include('ulusalb.urls')),
    path("1/firma/", include('firma.urls')),
]

它起作用了.

enter image description here

为什么会发生这种情况? 我想要这样的URL

path("firma/", include('firma.urls'))

我怎么才能解决这个问题?

推荐答案

可能ulusalb.urls包含的路径只包含<slug:slug>?这意味着它将捕获任何插件(或字符串),包括firma.弹丸not捕获的是斜杠,因此如果你使用斜杠,它将继续寻找模式,最终触发1/firma/.

你能做的就是把firma/放在第一位:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('firma/', include('firma.urls')),
    path('', include('ulusalb.urls')),
]

因此,它将首先在firma.urls个模式中寻找匹配的模式,只有在失败的情况下,才会退回到ulusalb.urls个模式.

这就是说,最好是使not的路径重叠:假设您稍后有一个对象,其中firma作为辅助对象,然后该对象不可访问,因为firma/将首先触发firma.urls.

Django相关问答推荐

Django BooleanField如何使用RadioSelect?

未显示SWAGER上的一些示例架构

Django ORM Groupby

我无法在Django模板中使用Get_Foo_Display

`.objects` 属性在哪里添加到 Django 的 models.Model 类中的实例命名空间?

- 不支持的操作数类型:DateField和DateField

如果上下文中缺少变量,如何使 Django 模板引发错误

如何从 django 模板生成静态 html 文件?

TestCase 类中的 setUpClass、setUpTestData 和 setUp 有什么区别?

Django App 配置不当 - 应用程序模块有多个文件系统位置

目前使用 Django Evolution,South是否更好,值得切换?

使用基于日期/时间的对象进行 Django 单元测试

在 Django REST Framework 中找不到资源时如何返回 404

Django 向用户推送 HTTP 响应

使用 Gunicorn 运行 Django - 最佳实践

带有 Django 和 Python 的 Atlassian Bamboo - 可能吗?

Django ORM 能否以可靠的与后端无关的方式存储无符号 64 位整数(又名 ulong64 或 uint64)?

Django:如何过滤属于特定组的用户

get_or_create() 是否必须立即保存?

AttributeError:ManyRelatedManager对象没有add属性?