2011-10-21 78 views
0

我想实现一个可重复使用的表单,用户可以下载这个网站为他们生成的网站的HTML代码。他们还可以使用界面创建他们的表格,在那里他们可以选择他们想要的字段并对它们进行排名,这样最高可以首先以可下载的形式出现。如何将Django字段(如在字段对象中)保存到数据库中?

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

现在,我的问题是,我怎样才能保存我的数据库中的Django字段对象?这样我就可以存储用户创建的表单,特别是他们选择的字段。

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

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

回答

1

你可以酸洗Field对象:

import cPickle 
field = forms.CharField() 
dump = cPickle.dumps(field) # serializes field as an ASCII string 
my_model.stored_field = dump 

要unpickle:

field = cPickle.loads(my_model.stored_field) 

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

相关问题