我正在使用Python Tools for Visual Studio(Python 3和django 1.6)并尝试从这样的表中访问数据:
from django.http import HttpResponse
from django.template import Template, Context
from ticket.models import Task
def ticket_listing(request):
objects = Task.objects.all().order_by('-due_date')
template = Template('{%for elem in objects %} {{elem}}<br/> {% endfor %}')
context = Context({'objects', objects})
return HttpResponse(template.render(context))
问题是在Task之后,对象没有出现在建议中,似乎它不可用。为什么?如果我运行此代码,我会得到一个空模板...我检查过数据库中的条目(3行)。
答案 0 :(得分:2)
代码中存在拼写错误,但它没有TypeError
...您已经创建了一个集合而不是字典来传递给模板。 Django没有抱怨,因为它是一个可迭代的,没有类型检查。
>>> {1, 2}
set([1, 2])
>>> {1: 2}
{1: 2}
您只需要通过以下方式替换错误的行:
context = Context({'objects': objects})