def render(self, context): tz_name = settings.DEFAULT_TZ if self.tz_var is None: user = Variable('user').resolve(context) if user.is_authenticated(): tz_name = user.profile.time_zone else: tz_name = self.tz_var.resolve(context) dt = self.var_name.resolve(context) utc = pytz.timezone('UTC') tz = pytz.timezone(tz_name) dt = utc.localize(dt) dt = dt.astimezone(tz) return dt.strftime(settings.TIME_FORMATS[self.fmt_name])