Python 3.5.1版
你能看一下代码和图片吗。你知道吗
这是一些Django代码,但问题与Python有关。你知道吗
好吧,我得到一个错误:
Exception Value:
name 'objects' is not defined
Exception Location:
/home/michael/workspace/pharchive/pharchive/general/templatetags/md_aux.py in get_aux_info, line 17
第17行是context=context({“objects”:objects})。在这幅画里它是可见的。你知道吗
我试着在稍微上面添加objects=[]。但那没用。在这种情况下,对象实际上是空的。所以,我把它注释掉了。你知道吗
好吧,在截图中我们可以看到如果我们在断点处停下来会得到什么。我们可以看到,objects var确实可以在上下文中访问。它包含了一些东西。你知道吗
不管怎样,我被变量范围困住了。你知道吗
我不明白: 1为什么objects=[]没有帮助我。 2为什么我得到这个错误,而对象是可访问的。你知道吗
你能踢我一下吗?你知道吗
@register.simple_tag
def get_aux_info(master_document, aux_type):
md = MasterDocument.objects.get(pk=master_document)
template = get_template("general/md_tags.html")
#objects = []
code = "objects = md." + aux_type +"s.all()"
exec(code)
context = Context({"objects": objects})
return template.render(context)
一种比构建和} 函数访问属性。这样可以更清楚地了解正在发生的事情,并完全回避当前的范围问题:
exec
将代码作为字符串使用更简单的方法是使用内置的^{Python对这种内省有广泛的支持;使用
exec
(和eval
)通常是一种警告,表明您正在以错误的方式处理某些事情。你知道吗相关问题 更多 >
编程相关推荐