Импорт других моделей приложений Django в View - должен быть базовым - PullRequest
0 голосов
/ 18 февраля 2011

Я понимаю, что делаю что-то не так, просто не знаю, что это такое.Я не получаю никаких ошибок, но я не получаю никаких данных модели, отображаемых при загрузке страницы.

Вот что я пытаюсь сделать: Приложения: база, блог, резюме

Я пытаюсь получить модели из блога и резюме, чтобы показать их в виде базы.И приложения для блогов, и для резюме работают отлично.

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))

list.html template

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

наконец, 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)),
)

Какую глупую ошибку я совершаю?Шаблон отображается, он просто не содержит данных модели.

Редактировать: Добавлен шаблон 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>

1 Ответ

1 голос
/ 18 февраля 2011
{% for project in projects.object_list %}
# should be
{% for project in projects %}

и

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

QuerySet s не имеют атрибута object_list, о котором я знаю, поэтому шаблонизатор молча отказывает на нем.

...