【问题标题】:How can I save a Django field (as in the field object) to the database?如何将 Django 字段(如在字段对象中)保存到数据库中?
【发布时间】:2011-10-21 21:34:34
【问题描述】:

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

然后他们可以在他们的站点中使用表单来收集客户数据,当表单被提交时,操作参数会指向我们的站点,因此我们可以将信息存储在我们的服务器上。

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

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

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

【问题讨论】:

    标签: django field


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多