Python 3.5.1Exec и переменная область
Не могли бы вы ознакомиться с кодом и изображением.
Это код 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 ({ "объекты": объекты}). На картинке видно.
Я попытался добавить объекты = [] чуть выше. Но это не помогло. В этом случае объекты были действительно пустыми. Итак, я прокомментировал это.
Ну, на скриншоте мы можем получить то, что получим, если остановимся в точке останова. Мы видим, что объекты var действительно доступны в контексте. И в нем есть что-то.
В любом случае, я застрял с переменным объемом.
Я не понимаю: 1. Почему объекты = [] не помогли мне. 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
Мне удалось справиться с самим exec. Ну, я не был в моем арсенале. Теперь это. Спасибо . Если вы сформируете его в качестве ответа, я с радостью приму его. – Michael