Джанго: ошибка получения шаблонов - PullRequest
0 голосов
/ 02 апреля 2012

Я новичок в Джанго.Теперь у меня проблема с получением шаблонов.Контекст моей веб-страницы содержит только грязный код ...

Вот фото / views.py:

from django.template import loader, Context
from django.http import HttpResponse
from final.photo.models import Image, Audio

def List(request):
    posts = Image.objects.all()
    t = loader.get_template("list.html")
    return HttpResponse(t, { 'posts': posts })

Вот фото / urls.py:

from django.conf.urls.defaults import *
from final.photo.views import List

urlpatterns = patterns('',
    url(r'^$', List),
)

Вот list.html: (часть кода не видна на веб-странице)

<pre>

<title>So Easy! - Scene List</title>

<h1>So Easy! Learn Chinese</h1>

{% block content %}
{% endblock %}

Я надеюсь, что кто-то может помочь мне решить эту проблему!Спасибо!

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Попробуйте изменить вид на следующее:

def List(request):
    posts = Image.objects.all()

    context = RequestContext(request, {
         'posts': posts,
    })

    return render_to_response('list.html', context)

Также убедитесь, что ваш файл settings.py имеет следующее:

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

Наконец, вам также нужно изменить шаблон list.html, чтобы использовать переменную posts, которую вы передаете, используя {{posts.some_image_attribute}} в своем шаблоне.

0 голосов
/ 02 апреля 2012

Прежде всего: какую версию django вы используете? В Django 1.3 добавлены классы просмотра, которые значительно упрощают работу.

Учитывая, что вы все еще на Django 1.2:

  1. Вы должны установить папку шаблонов в settings.py:

    TEMPLATE_DIRS = ( # Поместите здесь строки, например "/ home / html / django_templates" или "C: / www / django / templates". Всегда используйте косую черту, даже в Windows. # Не забудьте использовать абсолютные пути, а не относительные пути. "/ Абсолютный / путь / к / вашим / шаблон / папки", )

  2. Также вам нужно добавить фрагмент кода внутри list.html:

    {% block content%}

    {% за элемент в сообщениях%} {% endfor%} {% endblock%}

  3. Рекомендуется создать base.html для ваших шаблонов. После этого добавьте {% extends "base.html"%} в качестве первой строки вашего list.html

  4. Возвращаемая строка вашей функции просмотра должна быть: return render_to_response ('list.html', {'posts': posts})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...