diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py b/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py index 6e90b142013e..c56faea1515c 100644 --- a/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py +++ b/python/helpers/pydev/_pydevd_bundle/pydevd_vars.py @@ -379,7 +379,7 @@ def change_attr_expression(thread_id, frame_id, attr, expression, dbg, value=Non try: expression = expression.replace('@LINE@', '\n') - if dbg.plugin: + if dbg.plugin and not value: result = dbg.plugin.change_variable(frame, attr, expression) if result: return result diff --git a/python/helpers/pydev/pydevd_plugins/jinja2_debug.py b/python/helpers/pydev/pydevd_plugins/jinja2_debug.py index 3e8c676416b0..f71cd9187dca 100644 --- a/python/helpers/pydev/pydevd_plugins/jinja2_debug.py +++ b/python/helpers/pydev/pydevd_plugins/jinja2_debug.py @@ -136,12 +136,13 @@ class Jinja2TemplateFrame: def _change_variable(self, frame, name, value): in_vars_or_parents = False - if name in frame.f_locals['context'].parent: - self.back_context.parent[name] = value - in_vars_or_parents = True - if name in frame.f_locals['context'].vars: - self.back_context.vars[name] = value - in_vars_or_parents = True + if 'context' in frame.f_locals: + if name in frame.f_locals['context'].parent: + self.back_context.parent[name] = value + in_vars_or_parents = True + if name in frame.f_locals['context'].vars: + self.back_context.vars[name] = value + in_vars_or_parents = True l_name = 'l_' + name if l_name in frame.f_locals: