Python django应用程序在模板呈现期间出错
这是我的项目目录结构Python django应用程序在模板呈现期间出错,python,Python,这是我的项目目录结构 blog migration templates **blog** __init__.py admin.py models.py tests.py urls.py views.py **mysite** __init__.py
blog
migration
templates
**blog**
__init__.py
admin.py
models.py
tests.py
urls.py
views.py
**mysite**
__init__.py
settings.py
urls.py
wsgi.py
其中,blog是应用程序目录,mysite是te项目目录
这是我的博客/url.py
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$',views.post_list, name='post_list'),
url(r'^post/(?P<pk>[0-9]+)/$',views.post_detail, name='post_detail'),
]
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="{%static "css/blog.css"%}">
</head
<body>
<h1>Testings django project</h1>
{% for posts in post%}
<h4><a href="{% url "post_detail" pk=post.pk %}">Title:{{posts.title}}</a></h4>
<p>content:{{posts.text}}</p>
{% endfor %}
</body>
</html>
下面是错误的详细信息
*Reverse for 'post_detail' with arguments '()' and keyword arguments '{u'pk': ''}' not found. 0 pattern(s) tried: []
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.8.3
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'post_detail' with arguments '()' and keyword arguments '{u'pk': ''}' not found. 0 pattern(s) tried: []
Exception Location: C:\Python27\lib\site-packages\django\core\urlresolvers.py in _reverse_with_prefix, line 496
Python Executable: C:\Python27\python.exe
Python Version: 2.7.9
Python Path:
['D:\\djangogirls',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python27\\DLLs',
'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk',
'C:\\Python27',
'C:\\Python27\\lib\\site-packages']
Server time: Mon, 20 Jul 2015 22:26:29 +0545*
看起来您尚未将URL调度程序配置为在blogs/URL.py
文件中包含URL。请注意,主urls.py
文件是proyect目录中的文件。如果要在应用程序目录中添加另一个应用程序,则必须显式执行
您可以查看有关如何执行此操作的文档。基本上,您必须在mysite/url.py
中添加类似的内容:
urlpatterns = [
url(r'^blog/', include('blog.urls')),
]
现在,您可以使用前缀
blog/
访问这些URL。例如,blog/post/which
您应该为对象命名,以表示它们的实际名称。出于某种原因,您在上下文中使用名称post
来引用post集;当您在模板中迭代该集合时,您将调用每个posts
。毫不奇怪,这会使您感到困惑,以至于当您在URL标记中引用帖子的PK时,您错误地引用了post.PK
,而不是posts.PK
正确命名对象,不会发生这种情况:
def post_list(request):
posts = Post.objects.all()
return render(request,'blog/post_list.html',{'posts':posts})
def post_detail(request,pk):
post = get_object_or_404(Post, pk=pk)
return render(request,'blog/post_detail.html',{'post':post})
及
{%用于post%中的post}
内容:{post.text}
{%endfor%}
您的错误说明了post\u详细信息的反向,这意味着您正试图使用反向功能访问post\u详细信息视图的url。当您试图访问服务器尚未加载url的名称的反向时,通常会发生此错误。因此出现了此错误。解决方案可能是什么这是我如何在主项目中导入应用程序日志的url设置从django.conf.urls导入include,从django.contrib导入url管理url模式=[url(r'^admin/',include(admin.site.urls)),url(r'',include('blog.urls'),]
urlpatterns = [
url(r'^blog/', include('blog.urls')),
]
def post_list(request):
posts = Post.objects.all()
return render(request,'blog/post_list.html',{'posts':posts})
def post_detail(request,pk):
post = get_object_or_404(Post, pk=pk)
return render(request,'blog/post_detail.html',{'post':post})
{% for post in post%}
<h4><a href="{% url "post_detail" pk=post.pk %}">Title:{{ post.title }}</a></h4>
<p>content:{{ post.text }}</p>
{% endfor %}