在Django中序列化ModelForm对象的最佳方法是什么?

时间:2008-12-15 18:12:22

标签: python xml django json serialization

我正在使用Django和Google Web Toolkit(GWT)来完成我当前的项目。我想通过Http响应将ModelForm实例传递给GWT,这样我就可以“切断”它并按照我的喜好进行渲染。我的目标是使表单与我的models.py文件的更改保持同步,同时增加对表单外观的控制。但是,序列化,序列化器和simplejson的django类无法序列化ModelForm。也不能cPickle。我有什么选择?

2 个答案:

答案 0 :(得分:1)

如果您使用的是纯Django,则可以将表单传递给模板,然后可以调用表单上的各个字段以获得更精确的渲染,而不是使用ModelForm.to_table。您可以使用以下内容迭代每个字段并按照您想要的方式呈现它:

{% for field in form.fields %}
    <div class="form-field">{{ field }}</div>
{% endfor %}

如果您想要排除某些字段,这也使您能够使用循环内的{%if%}块进行条件检查。

答案 1 :(得分:0)

如果您的问题只是将模型表序列化为json,那么只需编写自己的simplejson序列化程序子类。