【发布时间】:2022-01-16 07:46:09
【问题描述】:
我正在尝试使用 Django 创建一个简单的页面,其中使用主键显示帖子。但是,无法显示包含我的帖子的 DetailView 页面。
这是我的模型:
class Post(models.Model):
author = models.CharField(max_length=100)
title = models.CharField(max_length=100)
posted_date = timezone.now()
text = models.TextField()
def get_absolute_url(self):
return reverse("postdetail", kwargs={"pk": self.pk})
def __str__(self):
return self.title
这是我的 url 模式列表:
urlpatterns = [
url(r'^posts/(?P<pk>\d+)$', views.PostDetail.as_view(), name="postdetail"),
url(r'^$', views.index, name="index"),
url(r'^thanks/$', views.Thanks.as_view(), name="thanks"),
url(r'^postlist/$', views.PostList.as_view(), name="postlist"),
]
模板位于我的模板文件夹中,名为“post_detail.html”。
这里是详细视图:
class PostDetail(DetailView):
context_object_name = 'post_details'
model = Post
我看不出哪里可能有错误。我有一个 ListView 显示我的帖子,包括主键。但是当我尝试打开 URL http://127.0.0.1:8000/posts/1/
我明白了:
`Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/posts/1/
Using the URLconf defined in myproj.urls, Django tried these URL patterns, in this order:
admin/
^posts/(?P<pk>\d+)$ [name='postdetail']
^$ [name='index']
^thanks/$ [name='thanks']
^postlist/$ [name='postlist']
The current path, posts/1/, didn’t match any of these.
您知道为什么找不到 URL 吗?非常感谢。`
【问题讨论】: