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

标签 python xml django json serialization

我当前的项目使用 Django 和 Google Web Toolkit (GWT)。我想通过 Http 响应将 ModelForm 实例传递给 GWT,以便我可以“切割”它并根据需要呈现它。我的目标是使表单与 models.py 文件的更改保持同步,同时增强对表单外观的控制。但是,用于序列化的 django 类、序列化程序和 simplejson 无法序列化 ModelForm。 cPickle 也不能。我有什么选择?

最佳答案

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

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

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

关于python - 在 Django 中序列化 ModelForm 对象的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/369230/

相关文章:

Django REST Framework - 在 ApiClient 的序列化器测试中设置请求

python - 谷歌云 sql : Lost connection to MySQL server at 'reading initial communication packet'

python - 如何应用 groupby 函数来获取上个月的计数?

python - 矩阵操作 - 为什么正常循环会产生不同的结果?

php - 如何使用 PHP 中的 SoapClient 类向 XML 元素添加附加属性

c# - 序列化(TextWriter,“对象”)与序列化(XmlWriter,“对象”)

python - Django 模型的 DateTimeField 正在采用 UTC,即使时区在亚洲/加尔各答无处不在

python - 使用 ortools 选择列表中两个最小的整数值

python - django-rest-framework:在 ViewSet 更新方法中添加额外的权限

xml - 如何在 XSLT 中获取行号?