def set_object(self, store, param_name, value, is_editable=True): """ Updates a database object. :param store: a database store :param param_name: the parameter name :param value: the value to set :type value: a domain object :param is_editable: if the parameter can be modified interactivly """ detail = self._details.get(param_name) if detail is None: raise ValueError("%s is not a valid parameter" % (param_name, )) field_type = detail.get_parameter_type() if (value is not None and not isinstance(value, field_type)): raise TypeError( "%s must be a %s instance, not %r" % (param_name, field_type.__name__, type(value).__name__)) param = ParameterData.get_or_create(store, field_name=unicode(param_name)) if value is not None: value = unicode(value.id) param.field_value = value param.is_editable = is_editable self._values[param_name] = value
def set_object(self, store, param_name, value): """ Updates a database object. :param store: a database store :param param_name: the parameter name :param value: the value to set :type value: a domain object """ detail = self._details.get(param_name) if detail is None: raise ValueError("%s is not a valid parameter" % (param_name, )) field_type = detail.get_parameter_type() if (value is not None and not isinstance(value, field_type)): raise TypeError("%s must be a %s instance, not %r" % ( param_name, field_type.__name__, type(value).__name__)) param = ParameterData.get_or_create(store, field_name=unicode(param_name)) if value is not None: value = unicode(value.id) param.field_value = value param.is_editable = detail.is_editable self._values[param_name] = value
def _set_param_internal(self, store, param_name, value, expected_type): self._verify_detail(param_name, expected_type) param = ParameterData.get_or_create(store, field_name=unicode(param_name)) if value is not None and not type(value) is expected_type: raise TypeError("%s must be a %s, not %r" % ( param_name, expected_type, type(value).__name__)) # bool are represented as 1/0 if expected_type is bool: value = int(value) param.field_value = unicode(value) self.set_value_generic(param_name, param.field_value)
def _set_param_internal(self, store, param_name, value, expected_type): self._verify_detail(param_name, expected_type) param = ParameterData.get_or_create(store, field_name=unicode(param_name)) if value is not None and not type(value) is expected_type: raise TypeError("%s must be a %s, not %r" % ( param_name, expected_type, type(value).__name__)) # bool are represented as 1/0 if expected_type is bool: value = int(value) param.field_value = unicode(value) self.set_value_generic(param_name, param.field_value)