Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django';经理';对象不可编辑(但代码在manage.py shell中工作)_Django_Templates_Exception - Fatal编程技术网

django';经理';对象不可编辑(但代码在manage.py shell中工作)

django';经理';对象不可编辑(但代码在manage.py shell中工作),django,templates,exception,Django,Templates,Exception,我是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/defaul

我是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”对象不可编辑):

以及查看代码:

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'
[2]中的
:从注释视频导入视图
在[3]中:f=views.index(“”)
[{'id':6L,'name':u'segment 6000'}]
在[4]:f.content中
输出[4]:“测试\n\n
    \n\n
  • \n\n
\n”
有什么想法吗? 我发现很难调试,因为代码似乎在shell上工作,而不是在web服务器上

谢谢,
Raphael

在视图代码中,有很多部分被注释掉了,特别是在行中

latest_clip_list = Clip.objects.all()#.values_list("name","id")#.order_by('-pub_date')[:5]
您得到的错误,
'Manager'对象不可编辑
,表明模板中的for循环正在尝试迭代Manager
Clip.objects
,而不是queryset
Clip.objects.all()

仔细检查以确保您的视图实际读取

latest_clip_list = Clip.objects.all()
而且不只是看起来像

latest_clip_list = Clip.objects

仔细检查。它还返回manager.py shell中的对象列表。只是为了说明,发布的代码确实是代码,此答案无法解决问题。不,您所说的从shell会话获得的输出至少与您发布的视图代码不匹配。看来你一直在评论这一行的部分内容,以便追踪这个问题。我想检查服务器上运行的代码是否与您想象的一样。此外,如果您一直在服务器的文件系统上实时编辑代码,可能值得重新启动web服务器,以防万一,您看到的是一个线程的响应,该线程的旧代码仍然驻留在内存中。这对我来说很好。我使用的是models.School.objects,它显示了相同的错误,我用models.School.objects.all()更新了它,它成功了,谢谢!您能在服务器上的web日志中发布行
打印最新剪辑列表
输出的内容吗?此外,在您收到的错误页面中,回溯中的每一行都应该有一个部分,您可以展开该部分以查看每个堆栈帧中的局部变量。从那里可以看到查看功能中包含的
最新剪辑列表
latest_clip_list = Clip.objects.all()
latest_clip_list = Clip.objects