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

     2023-02-23     50

关键词:

【中文标题】在 Django 中序列化 ModelForm 对象的最佳方法是啥?【英文标题】:What is the best way to serialize a ModelForm object in Django?在 Django 中序列化 ModelForm 对象的最佳方法是什么? 【发布时间】:2010-09-27 00:31:21 【问题描述】:

我正在为我当前的项目使用 Django 和 Google Web Toolkit (GWT)。我想通过 Http 响应将 ModelForm 实例传递给 GWT,以便我可以“切碎”它并随意渲染它。我的目标是使表单与对我的 models.py 文件的更改保持同步,同时增加我对表单外观的控制。但是,用于序列化的 django 类、序列化程序和 simplejson 无法序列化 ModelForm。 cPickle 也不能。我的替代方案是什么?

【问题讨论】:

要“使表单与对我的 models.py 的更改保持同步”,您不需要在客户端中实现与 django.forms 等效的东西吗? 【参考方案1】:

如果您使用的是纯 Django,您可以将表单传递给您的模板,然后可以调用表单上的各个字段以进行更精确的呈现,而不是使用 ModelForm.to_table。您可以使用以下内容来遍历每个字段并完全按照您的意愿呈现:

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

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

【讨论】:

【参考方案2】:

如果您的问题只是将 ModelForm 序列化为 json,只需编写您自己的 simplejson 序列化器子类。

【讨论】:

ModelForm 上的 Django 和字段集

】ModelForm上的Django和字段集【英文标题】:DjangoandfieldsetsonModelForm【发布时间】:2010-10-0520:38:54【问题描述】:我知道您可以在django中为管理员助手指定字段集。但是,我找不到任何对ModelForms有用的东西。只是一些我不能使用的... 查看详情

django组件拾忆(代码片段)

...ngo的modelform组件三Django的缓存机制四Django的信号五Django的序列化回到顶部一Django的form组件回到顶部二Django的modelform组件这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来回到顶部三Django... 查看详情

如何使用 Ajax 在 Django 中更新 modelForm

】如何使用Ajax在Django中更新modelForm【英文标题】:HowtoupdateamodelForminDjangowithAjax【发布时间】:2015-12-2216:46:11【问题描述】:我想用Ajax更新一个模板。我的问题是:我在表单的列表中选择了一个客户,然后在第二个列表中的同一... 查看详情

如何在 Modelform 的网格中呈现 Django CheckoxInput?

】如何在Modelform的网格中呈现DjangoCheckoxInput?【英文标题】:HowtorenderDjangoCheckoxInputinagridfromModelform?【发布时间】:2022-01-0317:05:13【问题描述】:models.pyclassMyModel(Model):author=ForeignKey(settings.AUTH_USER_MODEL,on_delete=CASCADE)tit 查看详情

如何在 Django ModelForm 中获取实例

】如何在DjangoModelForm中获取实例【英文标题】:HowgetInstanceinDjangoModelForm【发布时间】:2017-08-1712:27:14【问题描述】:我正在尝试使用基于类的通用视图UpdateView更新Django中的模型。但是我遇到了一些实例问题。当我单击提交按钮... 查看详情

使用 Django,如何在模板中动态设置 ModelForm 字段值?

】使用Django,如何在模板中动态设置ModelForm字段值?【英文标题】:UsingDjango,howdoIsetaModelFormfieldvaluedynamicallyinthetemplate?【发布时间】:2021-01-2722:31:43【问题描述】:我正在尝试利用复选框字段为用户选择的收藏夹创建模型实例。... 查看详情

django-缓存机制,form组件(代码片段)

...ngo的modelform组件三Django的缓存机制四Django的信号五Django的序列化回到顶部一Django的form组件回到顶部二Django的modelform组件这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来回到顶部三Django... 查看详情

如何使用 Modelform 和 jquery 在 django 中获取相互依赖的下拉菜单?

】如何使用Modelform和jquery在django中获取相互依赖的下拉菜单?【英文标题】:HowtogetInterdependentdropdownsindjangousingModelformandjquery?【发布时间】:2012-12-1618:23:01【问题描述】:我是django和jquery的新手。我正在开发一个基于django的应用... 查看详情

Django,使用 ModelForm 更新用户配置文件

】Django,使用ModelForm更新用户配置文件【英文标题】:Django,updatingauserprofilewithaModelForm【发布时间】:2009-12-0102:05:50【问题描述】:我正在尝试为用户的个人资料显示一个简单的ModelForm并允许用户对其进行更新。这里的问题是我... 查看详情

在一个字符字段中使用两个模型字段组合的 Django ModelForm

】在一个字符字段中使用两个模型字段组合的DjangoModelForm【英文标题】:DjangoModelFormthatusesacombinationoftwomodelfieldsinonecharfield【发布时间】:2018-11-0100:32:33【问题描述】:是否可以将ModelForm中的两个模型字段组合到一个字符字段中... 查看详情

django组件-modelform(代码片段)

ModelForm组件功能就是把model和form组合起来.首先导入ModelFormfromdjango.formsimportModelForm在视图函数中,定义一个类,比如就叫StudentList,这个类要继承ModelForm,在这个类中再写一个原类Meta(规定写法,并注意首字母是大写的)在这个原类中,有... 查看详情

django modelform 为空显示空白

】djangomodelform为空显示空白【英文标题】:djangomodelformdisplayblankfornull【发布时间】:2015-04-1404:50:16【问题描述】:在django模型表单中,如何为空值显示空白,即防止在表单上显示(无)。使用postgresql,django1.6.5。我不希望在模... 查看详情

django-组件拾遗(代码片段)

...ngo的modelform组件三Django的缓存机制四Django的信号五Django的序列化一Django的form组件forms组件二Django的modelform组件这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看... 查看详情

ImageField() 不在 ModelForm 中保存图像 - Django/Python

】ImageField()不在ModelForm中保存图像-Django/Python【英文标题】:ImageField()notsavingimagesinModelForm-Django/Python【发布时间】:2015-05-2403:08:21【问题描述】:当我尝试从我的表单上传图片时,一切都在处理,但没有保存图片。有人知道为什... 查看详情

Django ModelForm 自定义日期字段

】DjangoModelForm自定义日期字段【英文标题】:DjangoModelFormCustomDateField【发布时间】:2019-10-0402:02:52【问题描述】:我正在尝试创建一个预订表格,该表格在发布表格时为模型预订创建一个对象。我正在使用自定义日期选择器小部... 查看详情

如何在 Django 中向 ModelForm 添加外键字段?

】如何在Django中向ModelForm添加外键字段?【英文标题】:HowdoIaddaForeignKeyFieldtoaModelForminDjango?【发布时间】:2011-08-0804:42:03【问题描述】:我想做的是显示一个表单,让用户:输入文档标题(来自Document模型)从下拉列表中选择他... 查看详情

django - 使用 FormView 和 ModelForm 更新模型

】django-使用FormView和ModelForm更新模型【英文标题】:django-updatemodelwithFormViewandModelForm【发布时间】:2014-03-0314:59:37【问题描述】:我不知道如何在FormView中使用ModelForm来更新已经存在的实例??此URL上的POST表单:r\'/object/(?P&lt... 查看详情

如何在 Django 中向 ModelForm 添加非模型字段?

】如何在Django中向ModelForm添加非模型字段?【英文标题】:HowtoaddnonmodelfieldtoModelForminDjango?【发布时间】:2013-05-1405:48:37【问题描述】:我希望这是有道理的,这就是我想做的事情(无论出于何种原因)。我想在我的模型表单中... 查看详情