0
我儘量讓定製Django的形式,從JSON格式,這樣的Django從JSON格式
{
"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_group.fields_form }}
,接受類的django.forms.forms.Form「,這{{ items_group.fields_form.as_ul }}
收到什麼。