コード例 #1
0
ファイル: models.py プロジェクト: b-dev/django-form-designer
    def get_form_field_init_args(self):
        args = {
            "required": self.required,
            "label": self.label if self.label else "",
            "initial": self.initial if self.initial else None,
            "help_text": self.help_text,
        }

        if self.field_class in ("django.forms.CharField", "django.forms.EmailField", "django.forms.RegexField"):
            args.update({"max_length": self.max_length, "min_length": self.min_length})

        if self.field_class in ("django.forms.IntegerField", "django.forms.DecimalField"):
            args.update(
                {
                    "max_value": int(self.max_value) if self.max_value != None else None,
                    "min_value": int(self.min_value) if self.min_value != None else None,
                }
            )

        if self.field_class == "django.forms.DecimalField":
            args.update(
                {
                    "max_value": Decimal(str(self.max_value)),
                    "min_value": Decimal(str(self.min_value)),
                    "max_digits": self.max_digits,
                    "decimal_places": self.decimal_places,
                }
            )

        if self.field_class == "django.forms.RegexField":
            if self.regex:
                args.update({"regex": self.regex})

        if self.field_class in ("django.forms.ChoiceField", "django.forms.MultipleChoiceField"):
            if self.choice_values:
                choices = []
                regex = re.compile("[\s]*\n[\s]*")
                values = regex.split(self.choice_values)
                labels = regex.split(self.choice_labels) if self.choice_labels else []
                for index, value in enumerate(values):
                    try:
                        label = labels[index]
                    except:
                        label = value
                    choices.append((value, label))
                args.update({"choices": tuple(choices)})

        if self.field_class in ("django.forms.ModelChoiceField", "django.forms.ModelMultipleChoiceField"):
            args.update({"queryset": ModelNameField.get_model_from_string(self.choice_model).objects.all()})

        if self.field_class == "django.forms.ModelChoiceField":
            args.update({"empty_label": self.choice_model_empty_label})

        if self.widget:
            args.update({"widget": get_class(self.widget)()})

        return args
コード例 #2
0
ファイル: models.py プロジェクト: 7mp/django-form-designer
    def get_form_field_init_args(self):
        args = {
            'required': self.required,
            'label': self.label if self.label else '',
            'initial': self.initial if self.initial else None,
            'help_text': self.help_text,
        }

        if self.field_class in ('django.forms.CharField', 'django.forms.EmailField', 'django.forms.RegexField'):
            args.update({
                'max_length': self.max_length,
                'min_length': self.min_length,
            })

        if self.field_class in ('django.forms.IntegerField', 'django.forms.DecimalField'):
            args.update({
                'max_value': int(self.max_value) if self.max_value != None else None,
                'min_value': int(self.min_value) if self.min_value != None else None,
            })

        if self.field_class == 'django.forms.DecimalField':
            args.update({
                'max_value': Decimal(str(self.max_value)),
                'min_value': Decimal(str(self.min_value)),
                'max_digits': self.max_digits,
                'decimal_places': self.decimal_places,
            })

        if self.field_class == 'django.forms.RegexField':
            if self.regex:
                args.update({
                    'regex': self.regex
                })

        if self.field_class in ('django.forms.ChoiceField', 'django.forms.MultipleChoiceField'):
            if self.choice_values:
                choices = []
                regex = re.compile('[\s]*\n[\s]*')
                values = regex.split(self.choice_values)
                labels = regex.split(self.choice_labels) if self.choice_labels else []
                for index, value in enumerate(values):
                    try:
                        label = labels[index]
                    except:
                        label = value
                    choices.append((value, label))
                args.update({
                    'choices': tuple(choices)
                })

        if self.field_class in ('django.forms.ModelChoiceField', 'django.forms.ModelMultipleChoiceField'):
            args.update({
                'queryset': ModelNameField.get_model_from_string(self.choice_model).objects.all()
            })

        if self.field_class == 'django.forms.ModelChoiceField':
            args.update({
                'empty_label': self.choice_model_empty_label
            })

        if self.widget:
            args.update({
                'widget': get_class(self.widget)()
            })

        return args
コード例 #3
0
    def get_form_field_init_args(self):
        args = {
            'required': self.required,
            'label': self.label if self.label else '',
            'initial': self.initial if self.initial else None,
            'help_text': self.help_text,
        }

        if self.field_class in ('django.forms.CharField',
                                'django.forms.EmailField',
                                'django.forms.RegexField'):
            args.update({
                'max_length': self.max_length,
                'min_length': self.min_length,
            })

        if self.field_class in ('django.forms.IntegerField',
                                'django.forms.DecimalField'):
            args.update({
                'max_value':
                int(self.max_value) if self.max_value != None else None,
                'min_value':
                int(self.min_value) if self.min_value != None else None,
            })

        if self.field_class == 'django.forms.DecimalField':
            args.update({
                'max_value':
                Decimal(str(self.max_value))
                if self.max_value != None else None,
                'min_value':
                Decimal(str(self.min_value))
                if self.max_value != None else None,
                'max_digits':
                self.max_digits,
                'decimal_places':
                self.decimal_places,
            })

        if self.field_class == 'django.forms.RegexField':
            if self.regex:
                args.update({'regex': self.regex})

        if self.field_class in ('django.forms.ChoiceField',
                                'django.forms.MultipleChoiceField'):
            if self.choice_values:
                choices = []
                regex = re.compile('[\s]*\n[\s]*')
                values = regex.split(self.choice_values)
                labels = regex.split(
                    self.choice_labels) if self.choice_labels else []
                for index, value in enumerate(values):
                    try:
                        label = labels[index]
                    except:
                        label = value
                    choices.append((value, label))
                args.update({'choices': tuple(choices)})

        if self.field_class in ('django.forms.ModelChoiceField',
                                'django.forms.ModelMultipleChoiceField'):
            args.update({
                'queryset':
                ModelNameField.get_model_from_string(
                    self.choice_model).objects.all()
            })

        if self.field_class == 'django.forms.ModelChoiceField':
            args.update({'empty_label': self.choice_model_empty_label})

        if self.widget:
            args.update({'widget': get_class(self.widget)()})

        return args
コード例 #4
0
    def get_form_field_init_args(self):
        args = {
            'required': self.required,
            'label': self.label if self.label else '',
            'initial': self.initial if self.initial else None,
            'help_text': self.help_text,
        }

        if self.field_class in ('django.forms.CharField', 'django.forms.EmailField', 'django.forms.RegexField'):
            args.update({
                'max_length': self.max_length,
                'min_length': self.min_length,
            })

        if self.field_class in ('django.forms.IntegerField', 'django.forms.DecimalField'):
            args.update({
                'max_value': int(self.max_value) if self.max_value != None else None,
                'min_value': int(self.min_value) if self.min_value != None else None,
            })

        if self.field_class == 'django.forms.DecimalField':
            args.update({
                'max_value': None if self.max_value == '' or self.max_value is None else Decimal(str(self.max_value)),
                'min_value': None if self.min_value == '' or self.min_value is None else Decimal(str(self.min_value)),
                'max_digits': self.max_digits,
                'decimal_places': self.decimal_places,
            })

        if self.field_class == 'django.forms.RegexField':
            if self.regex:
                args.update({
                    'regex': self.regex
                })

        if self.field_class in ('django.forms.ChoiceField', 'django.forms.MultipleChoiceField'):
            if self.choice_values:
                choices = []
                regex = re.compile('[\s]*\n[\s]*')
                values = regex.split(self.choice_values)
                labels = regex.split(self.choice_labels) if self.choice_labels else []
                for index, value in enumerate(values):
                    try:
                        label = labels[index]
                    except:
                        label = value
                    choices.append((value, label))
                args.update({
                    'choices': tuple(choices)
                })
        
        if getattr(django_settings, 'FORM_DESIGNER_INITIAL_CHOICE_EMPTY', False) \
            and self.field_class == 'django.forms.ChoiceField' \
            and not self.widget:
                choices = list(args['choices'])
                choices.insert(0, ('', _('Please Select...')))
                args['choices'] = choices

        if self.field_class in ('django.forms.ModelChoiceField', 'django.forms.ModelMultipleChoiceField'):
            args.update({
                'queryset': ModelNameField.get_model_from_string(self.choice_model).objects.all()
            })

        if self.field_class == 'django.forms.ModelChoiceField':
            args.update({
                'empty_label': self.choice_model_empty_label
            })

        if self.widget:
            args.update({
                'widget': get_class(self.widget)()
            })

        return args