def _handle_range(self, range_arg): """ Handle_range This determines if a range is temporal, and if so, converts the endpoints from ISO8601 strings to python datetime objects :param range_arg: argument of the form [start, end] to give to the Django range filter operator """ if len(range_arg) != 2 or type(range_arg[0]) != type(range_arg[1]): raise exceptions.RangeTakesTwoArgsException() if pr_time.is_iso8601(range_arg[0]) and pr_time.is_iso8601(range_arg[1]): ret = [] for timestamp in range_arg: ret.append(pr_time.iso8601_to_datetime(timestamp)) return ret else: return range_arg
def set_time(self, field_name, new_value): if new_value: t = pr_time.iso8601_to_datetime(new_value) else: t = None setattr(self.django_object, field_name, t)