我是Django的初学者。现在,我遇到了获取模板的问题。我网页的上下文只包含杂乱的代码...
这是照片/ 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 %}
我希望有人能帮助我解决它!谢谢!
答案 0 :(得分:1)
尝试将您的观点更改为以下内容:
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.some_image_attribute}}来使用您传递的帖子变量。
答案 1 :(得分:0)
首先:您使用的是哪个版本的django? Django 1.3添加了View Classes,它使事情变得更容易。
考虑到你还在使用Django 1.2:
您必须在settings.py:
设置模板文件夹TEMPLATE_DIRS =( #在这里放置字符串,例如“/ home / html / django_templates”或“C:/ www / django / templates”。 #始终使用正斜杠,即使在Windows上也是如此。 #不要忘记使用绝对路径,而不是相对路径。 “/绝对/路径/到/你/模板/文件夹”, )
此外,您还需要在list.html中添加代码段:
{%block content%}
{%对于帖子中的项目%} {%endfor%} {%endblock%}
建议为您的模板创建一个base.html。执行此操作后,添加{%extends“base.html”%}作为list.html的第一行
您的视图函数的返回行应为: 返回render_to_response('list.html',{'posts':posts})