【问题标题】:Django exclude url patternDjango 排除 url 模式
【发布时间】:2021-12-25 06:44:26
【问题描述】:

我有一个基本的 django 应用程序,并希望从匹配具有相似结构的其他路由中排除路由
下面是我的urls.py

from django.urls import path
from . import views

app_name = 'blogs'

urlpatterns = [
    path('', views.index, name = 'index'),
    path('create', views.create, name = 'create'),
    path('<str:handle>', views.show, name = 'blogs'),
]

我希望path('create'), views.create, name = 'create') 进入创建博客页面,path('&lt;str:handle&gt;', views.show, name = 'blogs'), 进入博客的详细信息页面。

当我导航到 http://localhost:8000/blogs/create 时,我收到 404 找不到博客错误

如何将create 排除在与博客详细信息页面的&lt;str:handle&gt; 匹配?

编辑
主应用程序 url 的 url.py

urlpatterns = [
    path('blogs/', include(('blogs.urls', 'blogs'), namespace = 'blogs')),
    path('admin/', admin.site.urls),
]

【问题讨论】:

  • 您能否将包含create 的其余网址包括在内?将create 放在blogs 之前可能会起作用
  • 我做了,但仍然收到错误
  • 您更新了您的网址以匹配上面的代码并且/blogs/create 仍然进入views.show 视图?这听起来不太可能。您可以发布其余的网址吗?
  • 请。 /blogs/create/ 转到 views.create 视图,但 /blogs/create 转到 views.show 视图

标签: python django regex routes django-urls


【解决方案1】:

选项 1

你有没有把你的应用放在项目 settings.py 中的已安装应用中。

选项 2。

您需要在项目 urls.py 文件中提及 blogs/urls.py 文件。

【讨论】:

  • 是的,我做了,两种选择...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2017-08-12
  • 1970-01-01
  • 2022-10-19
  • 2014-06-09
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多