如何将Django字段(如字段对象中)保存到数据库?

时间:2011-10-21 13:01:17

标签: django field

我正在尝试实现一个可重用的表单,用户可以下载HTML中的源代码,该站点是由站点为他们生成的站点。他们还可以使用界面创建表单,在界面中他们可以选择他们想要的字段并对其进行排名,以便最高出现在可下载表单中。

然后,他们可以在其网站中使用该表单来收集客户数据,并在表单提交后,操作参数指向我们的网站,以便我们可以将信息存储在我们的服务器上。

现在,我的问题是,如何在我的数据库中保存Django Field对象?这样我就可以存储用户创建的表单,尤其是他们选择的字段。

我需要存储Fields,以便我可以创建一个通用的Django ModelForm,用户可以在其可下载的表单中保存该ModelForm的Fields。因此,当他们向我们提交信息时,我可以直接将信息提供给ModelForm(因为Fields可以识别)并进行进一步的验证。

此外,我必须为每个字段添加一些基本的javascript验证(例如validation.js)(当用户下载表单时必须存在),并且我知道如果我可以保存字段本身会更容易。

1 个答案:

答案 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)

http://docs.python.org/library/pickle.html