2011-02-18 1 views
0

Je me rends compte que je fais quelque chose de fondamentalement faux ici, je ne sais pas exactement ce que c'est. Je ne reçois aucune erreur, mais les données du modèle ne s'affichent pas lorsque je charge la page.Importer d'autres modèles de Django Apps dans View - devrait être basique

Voici ce que je suis en train de faire: Apps: base blog, reprendre

Je suis en train d'obtenir les modèles de blog et reprendre à apparaître dans la vue de la base. Les applications de blog et de CV fonctionnent toutes deux correctement.

base/views.py

from django.core.urlresolvers import reverse 
from django.shortcuts import render_to_response 
from testpro.blog.models import Post 
from testpro.resume.models import Project 

def main(request): 
    """Main listing.""" 
    posts = Post.objects.all().order_by("-created") 
    projects = Project.objects.all().order_by("-created") 
    return render_to_response("list.html", dict(posts=posts, projects=projects, user=request.user)) 

modèle de list.html

{% extends "bbase.html" %} 

{% block content %} 
    <div class="main"> 
     <h3>Blog Posts</h3> 
     <!-- Posts --> 
     <ul> 
      {% for post in posts.object_list %} 
       <div class="title">{{ post.title }}</div> 
       <ul> 
        <div class="time">{{ post.created }}</div> 
        <div class="body">{{ post.body|linebreaks }}</div> 
       </ul> 
      {% endfor %} 
     </ul> 

     <!-- Projects --> 
     <h3>Projects</h3>  
     <ul> 
      {% for project in projects.object_list %} 
       <div class="title">{{ project.title }}</div> 
       <ul> 
        <div class="industry">{{ project.industry }}</div> 
        <div class="time">{{ project.created }}</div> 
        <div class="body">{{ project.body|linebreaks }}</div> 
       </ul> 
      {% endfor %} 
     </ul> 

    </div> 

{% endblock %} 

enfin, urls.py

from django.conf.urls.defaults import * 

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    (r'^main/', 'base.views.main'), 
    (r'^admin/', include(admin.site.urls)), 
) 

Quelle erreur stupide ce que je fais? Le rendu de modèle, il ne contient tout simplement pas de données de modèle.

Edit: Ajout modèle bbase.html

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> <title>{% block title %}Test Project{% endblock %}</title> </head> 

<body> 
    <div id="sidebar"> {% block sidebar %} {% endblock %} </div> 
    <div id="container"> 
     <div id="menu"> 
      {% block nav-global %} 

       <!-- MENU --> 
       <h3>MyBlog</h3> 
       {% if user.is_staff %} 
       <a href="{% url admin:index %}">Admin</a> 
       <a href="{% url admin:blog_post_add %}">Add post</a> 
       {% endif %} 

      {% endblock %} 
     </div> 

     <div id="content"> 
      {% block content %}{% endblock %} 
     </div> 
    </div> 

</body> 
</html> 
+0

Avez-vous testé sur la coque? Cela m'aide vraiment à trouver ces petits bogues agaçants ... shell python manage.py, puis essayez d'importer les modèles: from testpro.resume.models import Projet et appel: projects = Project.objects.all(). Order_by ("- created") pour voir si elle retourne quelque chose ... – Piva

+0

J'ai et il ne renvoie des données dans la coquille ... – mwan

Répondre

1
{% for project in projects.object_list %} 
# should be 
{% for project in projects %} 

et

{% for post in posts.object_list %} 
# should be 
{% for post in posts %} 

QuerySet s ne disposent pas d'un attribut object_list je suis au courant, de sorte que le moteur de template est silencieusement échouer dessus.

+0

Excellent, cela a fonctionné. Merci de clarifier. – mwan

+0

np! Au début, je pensais que c'était votre nom de modèle de base étrange, mais j'ai oublié que cela ferait une exception. –

Questions connexes