大家好,我是Django的新手,我已经开始学习如何创建博客,一切正常,但是当我点击地址http://127.0.0.1:8000/blog/上的帖子时,我收到了这个
重定向到地址>> http://127.0.0.1:8000/blog/2018/01/07/Django/
找不到页面(404)请求方法:GET请求URL: http://127.0.0.1:8000/blog/2018/01/07/Django/提出者: blog.views.post_detail
没有帖子与给定的查询匹配。
这是views.py的代码:
from django.shortcuts import render, get_object_or_404
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request,
'blog/post/list.html',
{'posts': posts})
def post_detail(request, year, month, day, post):
post = get_object_or_404(Post, slug=post,
status='published',
publish__year=year,
publish__month=month,
publish__day=day)
return render(request,
'blog/post/detail.html',
{'post': post})
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/'\
r'(?P<post>[-\w]+)/$',
views.post_detail,
name='post_detail'),
]
有人知道为什么我不能在博客上发帖子吗?
答案 0 :(得分:0)
请注意,地址http://127.0.0.1:8000/blog/2018/01/07/Django/
可能不是您要发布到的地址。
您可能希望发布到http://127.0.0.1:8000/blog
,然后您将使用POST正文中的日期来保存您的帖子。
无论哪种方式,此网址都不在您的网址模式列表中,因此请务必添加路由到&#34;博客&#34;在你的模式中
urlpatterns = [
# ...
url('blog/', views.detail, name='detail'),
]
答案 1 :(得分:0)
现在当我在http://127.0.0.1:8000/blog/并点击帖子时,我收到如下错误:
AttributeError at / blog / 2018/01/07 / Django /
模块'blog.views'没有属性'detail'
请求方法:GET请求URL: http://127.0.0.1:8000/blog/2018/01/07/Django/ Django版本:1.8.6 异常类型:AttributeError异常值:
模块'blog.views'没有属性'detail'
异常位置:/root/Projekty/mysite/blog/urls.py in, 第10行Python可执行文件:/ usr / bin / python3 Python版本:3.5.2 Python路径:
['/ root / Projekty / mysite','/ usr / lib / python35.zip', '/usr/lib/python3.5','/ usr / lib / python3.5 / plat-x86_64-linux_gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/ usr / lib中/ python3 / DIST-包']
服务器时间:周一,2018年1月8日08:35:01 +0000
views.py现在看起来像这样:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/'\
r'(?P<post>[-\w]+)/$',
views.post_detail,
name='post_detail'),
url('blog/', views.detail, name='detail'),
]