urlpatterns = [ url(r'^$', views.IndexView.as_view()), url(r'^category/(?P<cid>\d+)$', views.IndexView.as_view()), url(r'^category/(?P<cid>\d+)/page/(?P<num>\d+)$', views.IndexView.as_view()), url(r'^goodsdetails/(\d+)$', views.DetailView.as_view()),?: (urls.E004) Your URL pattern None is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances.
时间: 2023-06-17 16:04:23 浏览: 175
这个错误提示是因为你的urlpatterns列表中有一个URL模式的正则表达式没有被正确编写,导致出现了None类型的URL模式。
根据你提供的代码,可以看到最后一行的URL模式没有写完整,缺少了一个匹配参数的名称。具体来说,应该将最后一行的代码修改为:
```
url(r'^goodsdetails/(?P<gid>\d+)$', views.DetailView.as_view()),
```
这样就可以正确匹配以“/goodsdetails/数字”结尾的URL了,其中数字会被作为参数gid传递给DetailView视图。记得在视图中接收gid参数并进行相应的处理。
相关问题
urlpatterns = [ url(r'^$', views.IndexView.as_view()), url(r'^category/(?P<cid>\d+)$', views.IndexView.as_view()), url(r'^category/(?P<cid>\d+)/page/(?P<num>\d+)$', views.IndexView.as_view()), url(r'^goodsdetails/(?P<gid>\d+)$', views.DetailView.as_view()),
这是 Django 框架中 urls.py 文件中的路由配置,其中 urlpatterns 列表中定义了多个 url 路由规则,每个规则包含一个正则表达式和对应的处理函数(视图函数)。
第一个路由规则将匹配根路径(即网站首页),并将请求交给 IndexView 视图类进行处理;
第二个路由规则将匹配形如 /category/1 的路径,其中 \d+ 表示匹配一个或多个数字,将匹配到的数字作为参数传递给 IndexView 视图类的 cid 参数;
第三个路由规则将匹配形如 /category/1/page/2 的路径,其中 num 参数表示页码;
第四个路由规则将匹配形如 /goodsdetails/1 的路径,将匹配到的数字作为参数传递给 DetailView 视图类的 gid 参数。
from django.urls import path, re_path from . import views urlpatterns = [ path('', views.IndexView.as_view()), path('category/<int:cid>', views.IndexView.as_view()), path('category/<int:cid>/page/<int:num>', views.IndexView.as_view()), path('goodsdetails/<int:gid>', views.DetailView.as_view()), ]ERRORS: ?: (urls.E004) Your URL pattern None is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances. ?: (urls.E004) Your URL pattern None is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances. ?: (urls.E004) Your URL pattern None is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances. ?: (urls.E004) Your URL pattern None is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances. System check identified 4 issues (0 silenced).
这段代码有四个错误,每个错误都是由于缺失 URL 模式字符串所导致的。你需要将每个URL模式中的字符串补全,如下所示:
```python
from django.urls import path, re_path
from . import views
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('category/<int:cid>/', views.IndexView.as_view(), name='category'),
path('category/<int:cid>/page/<int:num>/', views.IndexView.as_view(), name='category_page'),
path('goodsdetails/<int:gid>/', views.DetailView.as_view(), name='goods_details'),
]
```
这个 URL 配置中定义了四个路由。这四个路由分别对应着四个视图函数。其中,`<int:cid>` 表示一个整数类型的参数,`<int:num>` 也表示一个整数类型的参数,`<int:gid>` 表示商品的 ID,用于查询商品详情。注意,每个 URL 模式字符串都必须以斜杠(/)结尾,否则 Django 将会抛出异常。另外,为了更加方便地进行 URL 反向解析,我们为每个 URL 模式字符串都指定了一个名称。
阅读全文