我正在尝试将图片显示为图片所代表的帖子,我必须做错事,但我不知道是什么。
我在尝试访问我网站的主页时遇到此错误。
模板渲染时出错
在模板... / home.html中,第48行出错
使用关键字参数'{'post_id':''}'找不到'view_post'。尝试了1种模式:['post /(?P [0-9] +)/ $']
及其展示的代码
<a href="{% url 'view_post' post_id=post.post_id %}"><img src="media/{{ item.image }}"></a>
这也是我的观点
def view_post(request, post_id):
post = get_object_or_404(Post,id=post_id)
return render(request,'gram/view_post.html',{'post': post})
并且网址
url(r'^post/(?P<post_id>[0-9]+)/$', views.view_post, name='view_post'),
感谢您的帮助。
答案 0 :(得分:0)
我根据您的代码示例做了一些假设。这一行:
post = get_object_or_404(Post,id=post_id)
表示课程Post
有一个属性id
。但是,在您的模板中,您可以拨打post.post_id
。假设post
是类Post
的对象实例,它应该具有属性id
。可能在课程post_id
中没有Post
这样的属性。
这意味着模板中post.post_id
不会返回输出。您的网址(此处未显示)需要一个整数['post/(?P[0-9]+)/$']
。因此会抛出错误。
试试这个代码段:
{% url 'view_post' post_id=post.id %}
并检查会发生什么。
正如我所说,这是基于一些假设,我不保证成功。
答案 1 :(得分:0)
原来我只是愚蠢而且让自己很难受。问题是我在home.html中已经完成了<a href
,并且主页视图并不知道post.id是什么 - 显然。问题已解决。