def compress(self, data_list): if data_list: type_prefix = data_list[ 0] # avoid `id, *values = data_list` notation, that is python 3 syntax. values = data_list[1:] # May happen when deleting models in formsets if type_prefix is None or type_prefix == '': return None urltype = self.url_type_registry[type_prefix] value_index = self.url_type_registry.index(type_prefix) value = values[value_index] if type_prefix == 'http': return AnyUrlValue(type_prefix, value, self.url_type_registry) else: if urltype.has_id_value: if isinstance(value, Model): value = value.pk # Auto cast foreign keys to integer. elif value: value = long(value) else: return None return AnyUrlValue(type_prefix, value, self.url_type_registry) return None
def compress(self, data_list): # Reimporting models from froms is tricky, and may lead to circular ImportErrors # Hence, importing here locally. from any_urlfield.models.values import AnyUrlValue if data_list: type_prefix = data_list[0] # avoid `id, *values = data_list` notation, that is python 3 syntax. values = data_list[1:] # May happen when deleting models in formsets if type_prefix is None or type_prefix == '': return None urltype = self.url_type_registry[type_prefix] value_index = self.url_type_registry.index(type_prefix) value = values[value_index] if type_prefix == 'http': return AnyUrlValue(type_prefix, value, self.url_type_registry) else: if urltype.has_id_value: if isinstance(value, Model): value = value.pk # Auto cast foreign keys to integer. elif value: value = long(value) else: return None return AnyUrlValue(type_prefix, value, self.url_type_registry) return None