0

Dies ist sicher ein Neuling Fehler, ich habe für viele Stunden gegoogelt, jetzt nicht eine funktionierende Lösung zu finden. Ich vermute Teil, weil ich nicht sicher bin, wonach ich genau suchen soll.Django Vorlage zeigt keine Datenbankinhalte

Ich arbeite an einer kleinen Blog-Anwendung, ich habe Modelle für Benutzer, Post, BlogComment und das ist alles.

Ich habe Ansichten für blogIndex und für blogPost geschrieben, das ist eine Auflistung aller Beiträge und eine Auflistung bestimmter Beiträge.

Der blogIndex funktioniert in der Ansicht, dass es gehört, es zeigt {{post.content}} {{post.author.firstname}} und so weiter ohne Problem.

Der Blogpost ist jedoch nicht. Der Blick sieht wie folgt aus:

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

Die blog_post.html sieht wie folgt aus:

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 %} 

mit dem gleichen Code in blog_index.html ich eine richtige Liste der Titel, Inhalt bekommen und so weiter. Diese

ist von urls.py:

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

Ich vermute, etwas stimmt nicht mit der Regex? Ich vermute, etwas ist eher falsch mit der Aussicht?

Dies ist die Ansicht für Blogverzeichnis, das funktioniert, aber hilft vielleicht mit Antworten:

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

Das schließlich ist der Code in 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 %} 

Links möglich Lösungen oder mich auf die Nase für engstirnig zu sein sind beide willkommene Eingabe.

Antwort

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

werden sollten:

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

Als allgemeine Hilfe, können Sie die pprint Filter verwenden, können Daten in die Vorlage übergeben zu prüfen, ist das, was Sie denken, es ist. Z.B. '

{{post | pprint}}

' während Sie Ihre Vorlagen und Ansichten hacken. – MattH

+0

Danke, ich wusste, dass es etwas Offensichtliches war. Das ist ein ziemlich raffinierter Trick! Noch einmal Danke. – tomasantonj

+0

Nehmen Sie sich diese Art von Fehler nicht zu Herzen, glauben Sie mir, dass es jedem passiert. Frische Augen sind normalerweise die beste Lösung, nach einer Pause oder einer anderen. – MattH