def init(self, model): self.init_field_from_name(model) if self.dbfield is not None: from django.db.models.fields import IntegerField, DecimalField, BooleanField, TextField, DateField, TimeField, DateTimeField from django.db.models.fields.related import ForeignKey if isinstance(self.dbfield, IntegerField): self.manage_integer_or_choices(self.dbfield) elif isinstance(self.dbfield, DecimalField): self.field_type = TYPE_FLOAT min_value, max_value = get_range_value(self.dbfield) self.field_list = [(six.text_type(min_value), six.text_type( max_value), six.text_type(self.dbfield.decimal_places))] elif isinstance(self.dbfield, BooleanField): self.field_type = TYPE_BOOL elif isinstance(self.dbfield, TextField): self.field_type = TYPE_STR elif isinstance(self.dbfield, DateField): self.field_type = TYPE_DATE elif isinstance(self.dbfield, TimeField): self.field_type = TYPE_TIME elif isinstance(self.dbfield, DateTimeField): self.field_type = TYPE_DATETIME elif isinstance(self.dbfield, ForeignKey): return self._init_for_list(self.dbfield.remote_field.model, False) elif isinstance(self.dbfield, ManyToManyField): return self._init_for_list(self.dbfield.remote_field.model, True) elif 'RelatedManager' in self.dbfield.__class__.__name__: return self._init_for_list(self.dbfield.model, False) else: self.field_type = TYPE_STR return True else: return False
def init(self, model): self.init_field_from_name(model) if self.dbfield is not None: from django.db.models.fields import IntegerField, DecimalField, BooleanField, TextField, DateField, TimeField, DateTimeField from django.db.models.fields.related import ForeignKey if isinstance(self.dbfield, IntegerField): self.manage_integer_or_choices(self.dbfield) elif isinstance(self.dbfield, DecimalField): self.field_type = TYPE_FLOAT min_value, max_value = get_range_value(self.dbfield) self.field_list = [(six.text_type(min_value), six.text_type(max_value), six.text_type(self.dbfield.decimal_places))] elif isinstance(self.dbfield, BooleanField): self.field_type = TYPE_BOOL elif isinstance(self.dbfield, TextField): self.field_type = TYPE_STR elif isinstance(self.dbfield, DateField): self.field_type = TYPE_DATE elif isinstance(self.dbfield, TimeField): self.field_type = TYPE_TIME elif isinstance(self.dbfield, DateTimeField): self.field_type = TYPE_DATETIME elif isinstance(self.dbfield, ForeignKey): return self._init_for_list(self.dbfield.remote_field.model, False) elif isinstance(self.dbfield, ManyToManyField): return self._init_for_list(self.dbfield.remote_field.model, True) elif 'RelatedManager' in self.dbfield.__class__.__name__: return self._init_for_list(self.dbfield.model, False) else: self.field_type = TYPE_STR return True else: return False
def manage_integer_or_choices(self, dbfield): if (dbfield.choices is not None) and (len(dbfield.choices) > 0): self.field_type = TYPE_LIST self.field_list = [] for choice_id, choice_val in dbfield.choices: self.field_list.append( (six.text_type(choice_id), six.text_type(choice_val))) else: self.field_type = TYPE_FLOAT min_value, max_value = get_range_value(dbfield) self.field_list = [(six.text_type(min_value), six.text_type(max_value), '0')]
def manage_integer_or_choices(self, dbfield): if (dbfield.choices is not None) and (len(dbfield.choices) > 0): self.field_type = TYPE_LIST self.field_list = [] for choice_id, choice_val in dbfield.choices: self.field_list.append( (six.text_type(choice_id), six.text_type(choice_val))) else: self.field_type = TYPE_FLOAT min_value, max_value = get_range_value(dbfield) self.field_list = [ (six.text_type(min_value), six.text_type(max_value), '0')]