我正在尝试编写一个执行插入或更新的网络服务。请求是一个带有标题的帖子,值包含表名、列名和要为每列设置的值,我正在解析请求标题并形成一个参数 dict
def handel_request(request): if request.method == "POST":
param_dict = formParmDict(request)
##if insert param_dict["Model"] is {'pk':1,'field1':100,'field2':200}
##if update param_dict["Model"] is {'pk':1,'field1':100}
Model(**param_dict["Model"]).save() ## if update then sets field2 to null
return HttpResponse()
else:
return HttpResponseBadRequest()
这在.save()
执行插入时工作正常。在更新的情况下,即如果param_dict["Model"]
包含{pk:1, field1:somevalue}
要更新,则它将除指定字段之外的其余字段设置param_dict["Model"]
为空。这是为什么?难道我做错了什么?不保存假设只更新指定的字段吗?