Django 模型实例的保存方法不更新字段

Save method of Django model's instance does not update fields

我在保存 Django 模型实例时遇到问题。

在我的 models.py 中,我有:

class Thing(models.Model):
    title = models.CharField(null=True,max_length=128)
    text = models.TextField(null=True)
    kind = models.CharField(max_length=32,null=False)
    date = models.DateField(auto_now_add=True, blank=True)

而且,好吧,我只想用新值更新它的一个实例。我的 views.py 包含:

def updateThing(request):
    ...
    message = request.POST.get('thing').encode('utf-8')
    title = request.POST.get('title').encode('utf-8')
    thingId = int(request.POST.get('thingId'))

    item = Thing.objects.get(id=thingId)
    if item:
        if len(title) > 0:
            item.title = title
        item.message = message
        item.save()

        addToLog(request,"success update : " + message,False)

如果我在调用 updateThing 后显示日志(通过 addToLog 方法添加),我可以看到 "success update",这意味着找到了 Thing 实例,"message" (+消息)是新的,但我的实例仍然存储了旧值:当我显示它们时,显示旧消息和标题。

由于 Django 没有引发任何异常,我想这只是 .save() 的错误使用,但我不知道问题出在哪里。

我需要你的帮助来理解和更正我的代码。

谢谢

模型定义中缺少 message 字段,因此在视图中设置实例的值更新了内存中的属性,但保存它并没有保留它。