これは確かに初心者の間違いです。私は何時間もグーグルで検索しましたが、有効な解決策は見つかりませんでした。何を正確に検索すればよいかわからないことが原因の一部だと思います。
私は小さなブログアプリケーションに取り組んでいます。ユーザー、投稿、ブログコメントのモデルがあり、それだけです。
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 %}
考えられる解決策へのリンクや、視野が狭いことを指摘するリンクは、どちらも歓迎されます。