我正在使用 JQuery 的移动客户端使用美味的 API 更新 Django 模型。当我发送 PUT 请求时,我收到错误消息Column 'created' cannot be null
。
'created' 列在我的模型中要更新,它是类型
models.DateTimeField(auto_now_add=True).
使用tastepie API 更新时,更新会导致此列设置为null
引发错误。
可以直接使用django表单成功更新模型。该错误仅由 API 更新调用引起。不知道可能是什么问题。
我尝试将字段更改为 ( default=datetime.datetime.now, editable=False, blank=True
) 代替,auto_now_add
但它仍然给出了相同的错误。让我知道是否有人知道问题可能是什么。
以下是部分资源代码:
class AbcResource(ModelResource):
def obj_update(self, bundle, request=None, **kwargs):
logger.debug("Update called")
res = super(AbcResource, self).obj_update(bundle, request)
signals.abc_updated.send( sender=request, abc=res.obj, user=request.user )
return res
这是模型的一部分:
class Abc( models.Model ):
created = models.DateTimeField(_('created'), auto_now_add=True)
该模型没有自定义保存方法。
Hers 是发送 PUT 请求的代码:
var url = root + "/api/v1/abc/" + selected_abc + "/" + "?user_key=" + user_guid + "&user_name=" + username + "&format=json";
var abc_data = xmlRequest(url, false);
abc_data["field"] = field_value;
var request = $.ajax({
url: url,
type: 'PUT',
contentType: 'application/json',
data: JSON.stringify(abc_data),
dataType: "application/json",
processData: false
})
request.done(function(msg) {
console.log("Status update pass : " + msg);
});
request.fail(function(jqXHR, textStatus) {
console.log("Status update fail : " + jqXHR.responseText);
console.log(jqXHR);
});
是否需要更多信息?