【发布时间】:2012-01-03 05:16:48
【问题描述】:
如果 POST 请求只有一个字段作为参数,我如何使用 ModelForm 更新实例中的一个字段? ModelField 尝试用 None 覆盖未在 POST 请求中传递的字段,从而导致数据丢失。
我有一个带有 +25 字段的模型
class C(models.Model):
a = models.CharField(max_length=128)
b = models.CharField(max_length=128)
...
x = models.IntegerField()
我有一个桌面应用程序,它执行 POST 请求,以便通过 views.py 中公开的 api 方法编辑 C 的实例
在 api 方法中,我使用 ModelForm 来验证字段,如下所示:
form = CModelForm(request.POST, instance=c_instance)
if form.is_valid():
form.save()
在执行 save() 时,django 要么抱怨某些其他字段不能为空,要么(如果所有字段都是可选的)用 None 覆盖它们。
有人知道如何管理它吗?我会手动进行所有检查并手动更新,但是该模型的字段列表非常长……
【问题讨论】: