我在保存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方法添加),我可以看到"成功更新",这意味着找到了Thing实例,"消息& #34; (+ message)是新的,但我的实例仍然存储旧值:当我显示它们时,会显示旧的消息和标题。
由于Django没有引发任何异常,我认为它只是对.save()的错误使用,但我不知道问题是什么。
我需要你的帮助来理解和纠正我的代码。
谢谢你
答案 0 :(得分:1)
模型定义中缺少message
字段,因此在视图中设置实例的值会更新内存中的属性,但保存它并不会保留它。