我是 django 的新手,并创建了一个与教程中描述的投票网站没有太大区别的应用程序。在我得到的网站上:
Exception Type: TemplateSyntaxError
Exception Value:
Caught TypeError while rendering: 'Manager' object is not iterable
Exception Location: /usr/lib/python2.7/dist-packages/django/template/defaulttags.py in render, line 190
指向标记错误 lin 第 4 行的模板(渲染时捕获 TypeError:'Manager' 对象不可迭代):
test
2 {% if clips %}
3 <ul>
4 {% for aclip in clips %}
5 <li><a href="/annotate/{{ aclip.id }}/">{{ aclip.name }}</a></li>
6 {% endfor %}
7 </ul>
8 {% else %}
9 <p>No clips are available.</p>
10 {% endif %}
这是剪辑对象:
class Clip(models.Model):
def __unicode__(self):
return self.name
name = models.CharField(max_length=30)
url = models.CharField(max_length=200)
以及查看代码:
def index(request):
#return HttpResponse("You're looking at clips.")
mylist = []
latest_clip_list = Clip.objects.all()#.values_list("name","id")#.order_by('-pub_date')[:5]
print latest_clip_list
return render_to_response('annotateVideos/index2.html', {'clips': latest_clip_list})
当我从 manage,py shell 运行这段代码时,也不例外:
In [2]: from annotateVideos import views
In [3]: f = views.index("")
[{'id': 6L, 'name': u'segment 6000'}]
In [4]: f.content
Out[4]: 'test\n\n <ul>\n \n <li><a href="/annotate//"></a></li>\n \n </ul>\n'
有任何想法吗?我发现很难调试,因为代码似乎在 shell 上运行,但在 web 服务器上却没有。
谢谢,拉斐尔