Django模板没有显示数据库内容

时间:2012-04-03 21:05:52

标签: django django-models django-templates django-views django-urls

这是一个新手的错误,我现在用Google搜索了好几个小时,没有找到一个有效的解决方案。我认为部分原因是由于不确定要搜索什么。

我正在开发一个小型博客应用程序,我有用户,帖子,blogComment的模型,这就是全部。

我已经为blogIndex和blogPost撰写了视图,这是所有帖子的列表和特定帖子的列表。

blogIndex正在其所属的视图中工作,它显示{{post.content}} {{post.author.firstname}}等等,没有任何问题。

然而,blogPost不是。视图如下所示:

def blogPost(request, postID):
    blogPost = post.objects.get(id=postID)
    return render_to_response("blog_post.html", {"post":post})

blog_post.html如下所示:

title: {{ post.title }}</br>
content: {{ post.content }}</br>
datetime: {{ post.datetime }}</br>
author: {{ post.author.first_name }} {{ post.author.last_name }}</br></br>

{% for comment in post.blogcomment_set.all %}
   Comment.firstName: {{comment.firstName}}</br>
   {{comment.lastName}}</br>
   {{comment.email}}</br>
   {{comment.datetime}}</br>
   {{comment.content}}</br>
{% endfor %}

使用blog_index.html中的相同代码,我可以获得正确的标题,内容等列表。

这是来自urls.py:

url(r'^blog/$', blogIndex),
url(r'^blog/(?P<postID>\d+)$', blogPost),

我怀疑正则表达式有问题吗? 我怀疑视图更可能出现问题?

这是blogIndex的视图,它正在运行,但可能有助于解答:

def blogIndex(request):
    posts = post.objects.all()
    return render_to_response("blog_index.html", {"posts":posts})

最后,这是blog_index.html中的代码:

{% for post in posts %}
<h3><a href="/blog/{{ post.id }}">{{ post.title }}</a></h3>
{{ post.content }}
<p>Posted by: {{ post.author.first_name }} {{ post.author.last_name }}<br /> At:    
{{ post.datetime }}</p>     

<p><strong>Comments: </strong><br />
    {% for comment in post.blogcomment_set.all %}
    By: {{ comment.firstname }}<br />
    Title: {{ comment.title }},<br />
    Content: {{ comment.content }}<br />
    Date: {{ comment.datetime }}</p>
    {% endfor %}  
{% endfor %}

可能的解决方案的链接或指向我的鼻子是狭窄的视线是欢迎输入。

1 个答案:

答案 0 :(得分:4)

def blogPost(request, postID):
    blogPost = post.objects.get(id=postID)
    return render_to_response("blog_post.html", {"post":post})

应该是:

def blogPost(request, postID):
    blogPost = post.objects.get(id=postID)
    return render_to_response("blog_post.html", {"post":blogPost})