0
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行是上下文語境=({ 「對象」:對象})。在圖片中可見。
我試着在上面添加一些對象= []。但是這並沒有幫助。在這種情況下,對象真的是空的。所以,我評論說。
那麼,在截圖中,我們可以得到我們在斷點處停下來的結果。我們可以看到對象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)
http://s019.radikal.ru/i636/1606/d5/a646b7fe8941.png
你爲什麼使用'exec'?不會'objects = getattr(md,aux_type +'s')。all()'做這個工作嗎? – jonrsharpe
我已經設法自己應對高管。好吧,我getattr沒有在我的軍械庫。現在它是。謝謝 。如果你將它形成答案,我會很樂意接受它。 – Michael