我是一名学习 Django 的学生。
我有一个问题,如果有人能帮助我,我将不胜感激。
当我导航到 127.0.0.1:8000/feeds/1 时,它正确显示 ID 为 1 的 feed。
但是,当我导航到 127.0.0.1:8000/reviews/1 时遇到问题,并且收到以下错误,提示找不到页面
这个问题可以通过在reviews/urls.py路径部分添加斜杠来解决,如下所示:“int:review_id/”。
我的问题是:为什么 feed URL 可以在 urlpatterns 中没有尾部斜杠的情况下工作,但对于评论,我必须包含尾部斜杠才能使其工作?
这是主要的urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path("admin/", admin.site.urls),
path("feeds/", include('feeds.urls')),
path("users/", include('users.urls')),
path("reviews/",include('reviews.urls'))
# path("boards/", include('boards.urls'))
]
# feeds/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.Feeds.as_view()),
path("<int:feed_id>",views.FeedDetail.as_view())
]
# reviews/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.Reviews.as_view()),
path("<int:review_id>/", views.ReviewDetail.as_view())
]
答案就在你面前。从你的代码:
path(
"<int:feed_id>", # <-- Notice no trailing '/'
views.FeedDetail.as_view())
path(
"<int:review_id>/", # <-- Notice trailing '/'
views.ReviewDetail.as_view())
或者换句话说,如果您将“/”放在路径声明的末尾,那么当您输入 URL 时,“/”也必须在那里。