def restore(self, value, context=None):
value = super(DatetimeWithTimezoneColumn, self).restore(value, context)<EOL>if value in ('<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>value = datetime.date.now()<EOL><DEDENT>if isinstance(value, datetime.datetime):<EOL><INDENT>tz = pytz.timezone(context.timezone)<EOL>if tz is not None:<EOL><INDENT>if value.tzinfo is None:<EOL><INDENT>base_tz = pytz.timezone(orb.system.settings().server_timezone)<EOL>if base_tz == tz:<EOL><INDENT>value = tz.fromutc(value)<EOL><DEDENT>else:<EOL><INDENT>value = base_tz.fromutc(value).astimezone(tz)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>value = value.astimezone(tz)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>log.warning('<STR_LIT>')<EOL><DEDENT><DEDENT>return value<EOL>
Restores the value from a table cache for usage.

:param      value   | <variant>
            context | <orb.Context> || None