python - 即使定义了视图、模板和 URL 配置,在 /posts 也找不到页面
问题描述
我正在构建一个简单的博客应用程序并尝试在 URL 中使用 slugs。我已经定义了 URL 以及视图和模板,但是当我尝试访问 URL /blog/posts 时,它也会从完全不同的视图中抛出 404。所有其他 URL 都可以工作,只是上面提到的 URL 有问题。
网址.py
urlpatterns = [
path('',views.IndexView.as_view(),name='index'),
path('create/',views.PostCreateView.as_view(),name='blog-create'),
path('posts/',views.UserPosts.as_view(),name='user-posts'),
path('<slug:slug>',views.PostDetailView.as_view(),name='blog-detail'),
path('list/',views.PostListView.as_view(),name='blog-list'),
path('<slug:slug>/comment/',views.create_comment,name='comment'),
]
按顺序关联的视图
class PostDetailView(LoginRequiredMixin,generic.DetailView):
model = Post
template_name = 'blog/post_detail.html'
context_object_name = 'post'
slug_url_kwarg = 'slug'
slug_field = 'slug'
class UserPosts(LoginRequiredMixin,generic.ListView):
model = Post
context_object_name = 'posts'
template_name = 'blog/user_post_list.html'
def get_queryset(self):
posts = super().get_queryset()
queryset = posts.objects.all(user= self.request.user)
return queryset
404错误
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/blog/posts
Raised by: blog.views.PostDetailView
No post found found matching the query
模板目录树
blog/
templates/
blog/
user_post_list.html
同样早些时候我也遇到了 path('/list') 的问题,但是当我从 slug URL 中删除 '/' 时它得到了解决,我不知道它为什么会起作用,谁能解释一下?
解决方案
推荐阅读
- flutter - 如何计算颤振列表中的总和?
- python - 在 seaborn 中突出显示联合图的一部分
- arcgis - 将 json 数据 arcgis 桌面转换为 javascript api FeatureLayer 和图形
- javascript - 量角器:chromeDriver 78 版抛出错误,它只支持 chrome 79 版
- swift - 如何在 Swift 中使用选择器视图值?
- sql-server - % 在 MS SQL Server 中是什么意思
- crash - 尝试打开现有应用程序时 Xcode 10 和 Xcode 11 不断崩溃
- c# - 在 C# 中,如何根据某些条件将导出的 Excel 文件的背景颜色单元格设置为特定颜色?
- c# - Unity ARCore 无法提取 IL2CPP 所需的资源
- java - Lucene 从索引中的文档更新字段,没有松散的信息