我正在尝试实现一个可重用的表单,用户可以下载HTML中的源代码,该站点是由站点为他们生成的站点。他们还可以使用界面创建表单,在界面中他们可以选择他们想要的字段并对其进行排名,以便最高出现在可下载表单中。
然后,他们可以在其网站中使用该表单来收集客户数据,并在表单提交后,操作参数指向我们的网站,以便我们可以将信息存储在我们的服务器上。
现在,我的问题是,如何在我的数据库中保存Django Field对象?这样我就可以存储用户创建的表单,尤其是他们选择的字段。
我需要存储Fields,以便我可以创建一个通用的Django ModelForm,用户可以在其可下载的表单中保存该ModelForm的Fields。因此,当他们向我们提交信息时,我可以直接将信息提供给ModelForm(因为Fields可以识别)并进行进一步的验证。
此外,我必须为每个字段添加一些基本的javascript验证(例如validation.js)(当用户下载表单时必须存在),并且我知道如果我可以保存字段本身会更容易。
答案 0 :(得分:1)
你可以挑选Field对象:
import cPickle
field = forms.CharField()
dump = cPickle.dumps(field) # serializes field as an ASCII string
my_model.stored_field = dump
要解开:
field = cPickle.loads(my_model.stored_field)