Python 来自JSON格式的Django

Python 来自JSON格式的Django,python,django,django-forms,Python,Django,Django Forms,我尝试从JSON格式定制django表单,如下所示 { "1": ["fieldlabel1", "str", false], "2": ["fieldlabel2", "str", false] } 其中'fieldlabel1'-字段标签,int或str-字段类型IntegerField或CharField,最后一个参数True或False是否为字段必填项 FIELD_TYPES = { 'str': forms.CharField, 'int': for

我尝试从JSON格式定制django表单,如下所示

{
    "1": ["fieldlabel1", "str", false], 
    "2": ["fieldlabel2", "str", false]
}
其中'fieldlabel1'-字段标签,int或str-字段类型IntegerField或CharField,最后一个参数True或False是否为字段必填项

FIELD_TYPES = {
    'str': forms.CharField,
    'int': forms.IntegerField,
}

    class ItemsGroup(models.Model):   
        ...
        fields = models.TextField(u'Addtional fields (JSON format)', blank=True, null=True, default=None)

        # raw_fields = { 1: (u'fieldlabel1','int', True), 2: (u'fieldlabel2','str', False) }
        def fields_form(self):
            try:
                raw_fields = json.loads(self.fields)
                fields = {}
                for key in raw_fields.keys():
                    fields['field'+str(raw_fields[key])] = FIELD_TYPES[raw_fields[key][1]](
                        label = raw_fields[key][0], required = raw_fields[key][2]
                    )

                return type('Form', (forms.Form,), fields)

            except ValueError:
                return None

在模板中,当我这样做时:
{{items\u group.fields\u form}
,接收类'django.forms.forms.form',这
{items\u group.fields\u form.as\u ul}
不接收任何内容

如果直接使用表单类,则需要创建表单的实例,例如

klass = type('Form', (forms.Form,), fields)
form = klass()
return form